From 63bfbea1841a712cc5c418ee779358b051ea1635 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 22 May 2023 12:36:36 +0000 Subject: [PATCH 01/50] Update dependencies from https://github.com/dotnet/arcade build 20230519.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23269.2 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0ae3fc4712..08ca77b085 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 2d8d59065b5e090584a8e90c4371fc06ed60bdc5 + 792c346a52b2388152c2fad6f626b88ed8736d6f https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 902cc3dab3..d9ab04b5b6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23265.1 + 8.0.0-beta.23269.2 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index 25df1701da..453fe3ae1e 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23265.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23265.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23269.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23269.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From f2e4581a80a718c35b82c4d83b5f6a690020cfaf Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Thu, 25 May 2023 14:11:20 -0700 Subject: [PATCH 02/50] Add dotnet8 nuget feed --- NuGet.config | 1 + 1 file changed, 1 insertion(+) diff --git a/NuGet.config b/NuGet.config index 976d8d3441..cf1fc2312f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -13,6 +13,7 @@ + From 04d8d368d4b2b7f86799df924cd868b58c36c8de Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 29 May 2023 12:36:16 +0000 Subject: [PATCH 03/50] Update dependencies from https://github.com/dotnet/arcade build 20230529.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23279.1 --- eng/Version.Details.xml | 24 ++++++++++----------- eng/Versions.props | 2 +- eng/common/sdk-task.ps1 | 2 +- eng/common/templates/job/job.yml | 12 +++++++---- eng/common/templates/steps/source-build.yml | 6 ++++++ eng/common/tools.ps1 | 4 ++-- global.json | 6 +++--- 7 files changed, 33 insertions(+), 23 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 08ca77b085..e7b517caf0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 792c346a52b2388152c2fad6f626b88ed8736d6f + 174c08a43b26fc26ba98975065f1125f910f5c37 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index d9ab04b5b6..e281725f5b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23269.2 + 8.0.0-beta.23279.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index e10a596879..6c4ac6fec1 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.4.1" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 44ad26abf5..e20ee3a983 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -75,6 +75,10 @@ jobs: - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - name: EnableRichCodeNavigation value: 'true' + # Retry signature validation up to three times, waiting 2 seconds between attempts. + # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures + - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY + value: 3,2000 - ${{ each variable in parameters.variables }}: # handle name-value variable syntax # example: @@ -83,7 +87,7 @@ jobs: - ${{ if ne(variable.name, '') }}: - name: ${{ variable.name }} value: ${{ variable.value }} - + # handle variable groups - ${{ if ne(variable.group, '') }}: - group: ${{ variable.group }} @@ -169,7 +173,7 @@ jobs: - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks + displayName: Execute Microbuild cleanup tasks condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) continueOnError: ${{ parameters.continueOnError }} env: @@ -219,7 +223,7 @@ jobs: displayName: Publish XUnit Test Results inputs: testResultsFormat: 'xUnit' - testResultsFiles: '*.xml' + testResultsFiles: '*.xml' searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} @@ -230,7 +234,7 @@ jobs: displayName: Publish TRX Test Results inputs: testResultsFormat: 'VSTest' - testResultsFiles: '*.trx' + testResultsFiles: '*.trx' searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index a97a185a36..1100521834 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -68,6 +68,11 @@ steps: runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' fi + baseOsArgs= + if [ '${{ parameters.platform.baseOS }}' != '' ]; then + baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' + fi + publishArgs= if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then publishArgs='--publish' @@ -86,6 +91,7 @@ steps: $internalRestoreArgs \ $targetRidArgs \ $runtimeOsArgs \ + $baseOsArgs \ /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ /p:ArcadeBuildFromSource=true \ /p:AssetManifestFileName=$assetManifestFileName diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 38cf94ff88..ffe0b4e2df 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -384,8 +384,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.4.1&view=overview - $defaultXCopyMSBuildVersion = '17.4.1' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2 + $defaultXCopyMSBuildVersion = '17.6.0-2' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/global.json b/global.json index 453fe3ae1e..2598d8bdff 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-preview.3.23178.7", + "dotnet": "8.0.100-preview.4.23260.5", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23269.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23269.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23279.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23279.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 80b44d67b13e313e86d15ceb1b4256e5f858a7e1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 5 Jun 2023 12:36:22 +0000 Subject: [PATCH 04/50] Update dependencies from https://github.com/dotnet/arcade build 20230602.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23302.3 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e7b517caf0..d465e9cf89 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 174c08a43b26fc26ba98975065f1125f910f5c37 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index e281725f5b..ecaa105a36 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23279.1 + 8.0.0-beta.23302.3 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index 2598d8bdff..a0d7e242f2 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23279.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23279.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23302.3", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23302.3", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 7d571b5d99f171c8454a7dcf3923829281b8de46 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 12 Jun 2023 12:38:26 +0000 Subject: [PATCH 05/50] Update dependencies from https://github.com/dotnet/arcade build 20230609.8 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23309.8 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d465e9cf89..491db1b9ca 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + 9994c5ed43856c35591d94ead68ef501a020eb2e https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index ecaa105a36..8a2cb878cb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23302.3 + 8.0.0-beta.23309.8 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index a0d7e242f2..89c28c7680 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23302.3", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23302.3", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23309.8", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23309.8", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From a6d98977d0d264445235be7315b6bfccecf9e1fd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 19 Jun 2023 12:35:37 +0000 Subject: [PATCH 06/50] Update dependencies from https://github.com/dotnet/arcade build 20230616.6 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23316.6 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- eng/common/dotnet-install.sh | 4 ++++ eng/common/tools.ps1 | 2 +- global.json | 6 +++--- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 491db1b9ca..a3b9460e58 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + e2334b2be36919347923d0ec872a46acddb1e385 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 8a2cb878cb..9323851d0e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23309.8 + 8.0.0-beta.23316.6 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index abd045a324..7e69e3a9e2 100755 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -54,6 +54,10 @@ cpuname=$(uname -m) case $cpuname in arm64|aarch64) buildarch=arm64 + if [ "$(getconf LONG_BIT)" -lt 64 ]; then + # This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS) + buildarch=arm + fi ;; loongarch64) buildarch=loongarch64 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index ffe0b4e2df..c9eced9f7d 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,7 +379,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '16.8' + $vsMinVersionReqdStr = '17.6' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, diff --git a/global.json b/global.json index 89c28c7680..679a83a499 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-preview.4.23260.5", + "dotnet": "8.0.100-preview.5.23303.2", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23309.8", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23309.8", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23316.6", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23316.6", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 827bea1efa92d8ec996f99c57db8e5524095c9af Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 26 Jun 2023 12:37:46 +0000 Subject: [PATCH 07/50] Update dependencies from https://github.com/dotnet/arcade build 20230622.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23322.2 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a3b9460e58..8c6c104efe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - e2334b2be36919347923d0ec872a46acddb1e385 + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 9323851d0e..5344d2e449 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23316.6 + 8.0.0-beta.23322.2 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index 679a83a499..411b7c4ea1 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23316.6", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23316.6", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23322.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23322.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 7f9de8aa3e461586933ed59d797cde0646b83603 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 3 Jul 2023 12:38:48 +0000 Subject: [PATCH 08/50] Update dependencies from https://github.com/dotnet/arcade build 20230630.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23330.1 --- eng/Version.Details.xml | 24 ++++++------- eng/Versions.props | 2 +- eng/common/sdl/configure-sdl-tool.ps1 | 40 ++++++++++++++-------- eng/common/sdl/execute-all-sdl-tools.ps1 | 4 ++- eng/common/templates/steps/execute-sdl.yml | 2 +- global.json | 4 +-- 6 files changed, 45 insertions(+), 31 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8c6c104efe..0ccefe7e82 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 + 9fc23a576f443284d25cd4311f5778158ad289c9 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 5344d2e449..d74d2cd82e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23322.2 + 8.0.0-beta.23330.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/sdl/configure-sdl-tool.ps1 b/eng/common/sdl/configure-sdl-tool.ps1 index bdbf49e6c7..ee9eb89332 100644 --- a/eng/common/sdl/configure-sdl-tool.ps1 +++ b/eng/common/sdl/configure-sdl-tool.ps1 @@ -17,7 +17,9 @@ Param( # Optional: Additional params to add to any tool using PoliCheck. [string[]] $PoliCheckAdditionalRunConfigParams, # Optional: Additional params to add to any tool using CodeQL/Semmle. - [string[]] $CodeQLAdditionalRunConfigParams + [string[]] $CodeQLAdditionalRunConfigParams, + # Optional: Additional params to add to any tool using Binskim. + [string[]] $BinskimAdditionalRunConfigParams ) $ErrorActionPreference = 'Stop' @@ -69,22 +71,32 @@ try { $gdnConfigFile = Join-Path $gdnConfigPath "$toolConfigName-configure.gdnconfig" # For some tools, add default and automatic args. - if ($tool.Name -eq 'credscan') { - if ($targetDirectory) { - $tool.Args += "`"TargetDirectory < $TargetDirectory`"" + switch -Exact ($tool.Name) { + 'credscan' { + if ($targetDirectory) { + $tool.Args += "`"TargetDirectory < $TargetDirectory`"" + } + $tool.Args += "`"OutputType < pre`"" + $tool.Args += $CrScanAdditionalRunConfigParams } - $tool.Args += "`"OutputType < pre`"" - $tool.Args += $CrScanAdditionalRunConfigParams - } elseif ($tool.Name -eq 'policheck') { - if ($targetDirectory) { - $tool.Args += "`"Target < $TargetDirectory`"" + 'policheck' { + if ($targetDirectory) { + $tool.Args += "`"Target < $TargetDirectory`"" + } + $tool.Args += $PoliCheckAdditionalRunConfigParams } - $tool.Args += $PoliCheckAdditionalRunConfigParams - } elseif ($tool.Name -eq 'semmle' -or $tool.Name -eq 'codeql') { - if ($targetDirectory) { - $tool.Args += "`"SourceCodeDirectory < $TargetDirectory`"" + {$_ -in 'semmle', 'codeql'} { + if ($targetDirectory) { + $tool.Args += "`"SourceCodeDirectory < $TargetDirectory`"" + } + $tool.Args += $CodeQLAdditionalRunConfigParams + } + 'binskim' { + if ($targetDirectory) { + $tool.Args += "`"Target < $TargetDirectory`"" + } + $tool.Args += $BinskimAdditionalRunConfigParams } - $tool.Args += $CodeQLAdditionalRunConfigParams } # Create variable pointing to the args array directly so we can use splat syntax later. diff --git a/eng/common/sdl/execute-all-sdl-tools.ps1 b/eng/common/sdl/execute-all-sdl-tools.ps1 index 4797e012c7..4715d75e97 100644 --- a/eng/common/sdl/execute-all-sdl-tools.ps1 +++ b/eng/common/sdl/execute-all-sdl-tools.ps1 @@ -35,6 +35,7 @@ Param( [string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1") [string[]] $PoliCheckAdditionalRunConfigParams, # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1") [string[]] $CodeQLAdditionalRunConfigParams, # Optional: Additional Params to custom build a Semmle/CodeQL run config in the format @("xyz < abc","sdf < 1") + [string[]] $BinskimAdditionalRunConfigParams, # Optional: Additional Params to custom build a Binskim run config in the format @("xyz < abc","sdf < 1") [bool] $BreakOnFailure=$False # Optional: Fail the build if there were errors during the run ) @@ -107,7 +108,8 @@ try { -GuardianLoggerLevel $GuardianLoggerLevel ` -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams ` -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams ` - -CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams + -CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams ` + -BinskimAdditionalRunConfigParams $BinskimAdditionalRunConfigParams if ($BreakOnFailure) { Exit-IfNZEC "Sdl" } diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml index 9dd5709f66..07426fde05 100644 --- a/eng/common/templates/steps/execute-sdl.yml +++ b/eng/common/templates/steps/execute-sdl.yml @@ -33,7 +33,7 @@ steps: - ${{ if ne(parameters.overrideParameters, '') }}: - powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }} - displayName: Execute SDL + displayName: Execute SDL (Overridden) continueOnError: ${{ parameters.sdlContinueOnError }} condition: ${{ parameters.condition }} diff --git a/global.json b/global.json index 411b7c4ea1..6d6655e6bf 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23322.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23322.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23330.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23330.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 47cd477553830b74e88181a84e59d87a4151b50c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 10 Jul 2023 12:37:31 +0000 Subject: [PATCH 09/50] Update dependencies from https://github.com/dotnet/arcade build 20230710.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23360.1 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0ccefe7e82..351499a06c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 9fc23a576f443284d25cd4311f5778158ad289c9 + 226c103b56a979243f08032e6cddb4deb66ea54b https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index d74d2cd82e..77d626b4c3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23330.1 + 8.0.0-beta.23360.1 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index 6d6655e6bf..e38f9346d4 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23330.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23330.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23360.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23360.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 709938461e32a833c219dca5d3a8e2c385365c8a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 17 Jul 2023 12:17:09 +0000 Subject: [PATCH 10/50] Update dependencies from https://github.com/dotnet/arcade build 20230714.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23364.2 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- eng/common/sdl/configure-sdl-tool.ps1 | 2 +- global.json | 6 +++--- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 351499a06c..219c964978 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 226c103b56a979243f08032e6cddb4deb66ea54b + 60ea5b2eca5af06fc63b250f8669d2c70179b18c https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 77d626b4c3..6b4eb55ee5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23360.1 + 8.0.0-beta.23364.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/sdl/configure-sdl-tool.ps1 b/eng/common/sdl/configure-sdl-tool.ps1 index ee9eb89332..e4108e39d9 100644 --- a/eng/common/sdl/configure-sdl-tool.ps1 +++ b/eng/common/sdl/configure-sdl-tool.ps1 @@ -93,7 +93,7 @@ try { } 'binskim' { if ($targetDirectory) { - $tool.Args += "`"Target < $TargetDirectory`"" + $tool.Args += "`"Target < $TargetDirectory\**`"" } $tool.Args += $BinskimAdditionalRunConfigParams } diff --git a/global.json b/global.json index e38f9346d4..0b412b7c4b 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-preview.5.23303.2", + "dotnet": "8.0.100-preview.6.23330.14", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23360.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23360.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23364.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23364.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From e51c1baef1e0bcae27c40d69485a22be1388b4cd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 24 Jul 2023 12:16:55 +0000 Subject: [PATCH 11/50] Update dependencies from https://github.com/dotnet/arcade build 20230721.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23371.1 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- eng/common/sdl/configure-sdl-tool.ps1 | 4 +++- global.json | 4 ++-- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 219c964978..aa390e5dac 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 60ea5b2eca5af06fc63b250f8669d2c70179b18c + 602351e3681015ea789b2aeaa7b2a9156a8baf38 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 6b4eb55ee5..14224219e2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23364.2 + 8.0.0-beta.23371.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/sdl/configure-sdl-tool.ps1 b/eng/common/sdl/configure-sdl-tool.ps1 index e4108e39d9..27f5a4115f 100644 --- a/eng/common/sdl/configure-sdl-tool.ps1 +++ b/eng/common/sdl/configure-sdl-tool.ps1 @@ -93,7 +93,9 @@ try { } 'binskim' { if ($targetDirectory) { - $tool.Args += "`"Target < $TargetDirectory\**`"" + # Binskim crashes due to specific PDBs. GitHub issue: https://github.com/microsoft/binskim/issues/924. + # We are excluding all `_.pdb` files from the scan. + $tool.Args += "`"Target < $TargetDirectory\**;-:file|$TargetDirectory\**\_.pdb`"" } $tool.Args += $BinskimAdditionalRunConfigParams } diff --git a/global.json b/global.json index 0b412b7c4b..b39c9cd4c0 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23364.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23364.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23371.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23371.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 5449f2441db3655e6ab2f24230f0c24cfc06afc7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 31 Jul 2023 12:16:29 +0000 Subject: [PATCH 12/50] Update dependencies from https://github.com/dotnet/arcade build 20230728.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23378.2 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index aa390e5dac..b19046034b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 602351e3681015ea789b2aeaa7b2a9156a8baf38 + 54dd37d44a2adfb8b966fac466c2ece40f8b20dd https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 14224219e2..852c603716 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23371.1 + 8.0.0-beta.23378.2 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index b39c9cd4c0..f8dcb0fe2f 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23371.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23371.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23378.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23378.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 905fad9bec2c32a357913d0b8b71737f0f795f12 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 7 Aug 2023 12:16:37 +0000 Subject: [PATCH 13/50] Update dependencies from https://github.com/dotnet/arcade build 20230804.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23404.2 --- eng/Version.Details.xml | 24 +++++++++---------- eng/Versions.props | 2 +- eng/common/loc/P22DotNetHtmlLocalization.lss | Bin 3810 -> 3842 bytes eng/common/sdl/extract-artifact-packages.ps1 | 20 +++++++++------- eng/common/templates/steps/source-build.yml | 9 +++++++ global.json | 4 ++-- 6 files changed, 35 insertions(+), 24 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b19046034b..22ac1afe80 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 54dd37d44a2adfb8b966fac466c2ece40f8b20dd + 1d39647dd408f7afd99cce01f26bba1d6bdeb248 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 852c603716..bbc1d5d3b4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23378.2 + 8.0.0-beta.23404.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/loc/P22DotNetHtmlLocalization.lss b/eng/common/loc/P22DotNetHtmlLocalization.lss index 6661fed566e49b0c206665bc21f135e06c9b89c4..858a0b237c62ce4f2ee12aa14794f160f6b122b7 100644 GIT binary patch delta 274 zcmaDP+a$;Ke*az|n#iQX$U9L_gN>JqL4iSGqQ3ORGAW?Q1Qjlb2!joS{zOAbi0B6! zCSI<|ip=VhLl{FCc_;TV>rD1wb_28WKvIp|l9MO!aluqwVe-JE3Mi$(QiGy^k2Qyp zcXJgh2O}fzByO?EbC~%yFJp^h0r5&8LVSE82)RSthrlX5CZFL2dIY2eC=as!FRvoZ VC5(KsFeZ}w7+K^&o(6kQ830GCL398B delta 289 zcmZpYdnC*B|KCJ59Y(H+iP97Oc_zkKO`NVWagPln*JOPr<;k*)5sCa-6G z0Wy(Sbn`m43>Gj`eDVTrmdU$#btcDi1KkdioE*R>0M!WMtz(ne{FHkKBZ~3}45bsf c6(=X~aZS$V(*VjreBsR}4-AfjvJ?He0GoYJrT_o{ diff --git a/eng/common/sdl/extract-artifact-packages.ps1 b/eng/common/sdl/extract-artifact-packages.ps1 index 7f28d9c59e..f031ed5b25 100644 --- a/eng/common/sdl/extract-artifact-packages.ps1 +++ b/eng/common/sdl/extract-artifact-packages.ps1 @@ -35,31 +35,33 @@ try { param( [string] $PackagePath # Full path to a NuGet package ) - + if (!(Test-Path $PackagePath)) { Write-PipelineTelemetryError -Category 'Build' -Message "Input file does not exist: $PackagePath" ExitWithExitCode 1 } - + $RelevantExtensions = @('.dll', '.exe', '.pdb') Write-Host -NoNewLine 'Extracting ' ([System.IO.Path]::GetFileName($PackagePath)) '...' - + $PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath) $ExtractPath = Join-Path -Path $using:ExtractPath -ChildPath $PackageId - + Add-Type -AssemblyName System.IO.Compression.FileSystem - + [System.IO.Directory]::CreateDirectory($ExtractPath); - + try { $zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath) $zip.Entries | Where-Object {$RelevantExtensions -contains [System.IO.Path]::GetExtension($_.Name)} | ForEach-Object { - $TargetFile = Join-Path -Path $ExtractPath -ChildPath $_.Name - - [System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile, $true) + $TargetPath = Join-Path -Path $ExtractPath -ChildPath (Split-Path -Path $_.FullName) + [System.IO.Directory]::CreateDirectory($TargetPath); + + $TargetFile = Join-Path -Path $ExtractPath -ChildPath $_.FullName + [System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile) } } catch { diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index 1100521834..41bbb91573 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -118,3 +118,12 @@ steps: artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() + +# Manually inject component detection so that we can ignore the source build upstream cache, which contains +# a nupkg cache of input packages (a local feed). +# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' +# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets +- task: ComponentGovernanceComponentDetection@0 + displayName: Component Detection (Exclude upstream cache) + inputs: + ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/global.json b/global.json index f8dcb0fe2f..abeb6e1393 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23378.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23378.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23404.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23404.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 7379ca5cf7b2122396ead60e976ef706c3853d2b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 14 Aug 2023 12:14:15 +0000 Subject: [PATCH 14/50] Update dependencies from https://github.com/dotnet/arcade build 20230811.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23411.1 --- eng/Version.Details.xml | 24 ++--- eng/Versions.props | 2 +- eng/common/native/init-distro-rid.sh | 132 ++++++++++++++++++++++++++ eng/common/native/init-os-and-arch.sh | 80 ++++++++++++++++ global.json | 6 +- 5 files changed, 228 insertions(+), 16 deletions(-) create mode 100644 eng/common/native/init-distro-rid.sh create mode 100644 eng/common/native/init-os-and-arch.sh diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 22ac1afe80..43cf76c529 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 1d39647dd408f7afd99cce01f26bba1d6bdeb248 + 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index bbc1d5d3b4..d657653822 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23404.2 + 8.0.0-beta.23411.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/native/init-distro-rid.sh b/eng/common/native/init-distro-rid.sh new file mode 100644 index 0000000000..aba9fe2402 --- /dev/null +++ b/eng/common/native/init-distro-rid.sh @@ -0,0 +1,132 @@ +#!/usr/bin/env bash + +# getNonPortableDistroRid +# +# Input: +# targetOs: (str) +# targetArch: (str) +# rootfsDir: (str) +# +# Return: +# non-portable rid +getNonPortableDistroRid() +{ + local targetOs="$1" + local targetArch="$2" + local rootfsDir="$3" + local nonPortableRid="" + + if [ "$targetOs" = "linux" ]; then + if [ -e "${rootfsDir}/etc/os-release" ]; then + source "${rootfsDir}/etc/os-release" + + if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then + # remove the last version digit + VERSION_ID="${VERSION_ID%.*}" + fi + + if [[ "${VERSION_ID:-}" =~ ^([[:digit:]]|\.)+$ ]]; then + nonPortableRid="${ID}.${VERSION_ID}-${targetArch}" + else + # Rolling release distros either do not set VERSION_ID, set it as blank or + # set it to non-version looking string (such as TEMPLATE_VERSION_ID on ArchLinux); + # so omit it here to be consistent with everything else. + nonPortableRid="${ID}-${targetArch}" + fi + + elif [ -e "${rootfsDir}/android_platform" ]; then + source "$rootfsDir"/android_platform + nonPortableRid="$RID" + fi + fi + + if [ "$targetOs" = "freebsd" ]; then + # $rootfsDir can be empty. freebsd-version is shell script and it should always work. + __freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; }) + nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}" + elif command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then + __android_sdk_version=$(getprop ro.build.version.sdk) + nonPortableRid="android.$__android_sdk_version-${targetArch}" + elif [ "$targetOs" = "illumos" ]; then + __uname_version=$(uname -v) + case "$__uname_version" in + omnios-*) + __omnios_major_version=$(echo "${__uname_version:8:2}") + nonPortableRid=omnios."$__omnios_major_version"-"$targetArch" + ;; + joyent_*) + __smartos_major_version=$(echo "${__uname_version:7:4}") + nonPortableRid=smartos."$__smartos_major_version"-"$targetArch" + ;; + illumos_*) + nonPortableRid=openindiana-"$targetArch" + ;; + esac + elif [ "$targetOs" = "solaris" ]; then + __uname_version=$(uname -v) + __solaris_major_version=$(echo "${__uname_version%.*}") + nonPortableRid=solaris."$__solaris_major_version"-"$targetArch" + elif [ "$targetOs" = "haiku" ]; then + __uname_release=$(uname -r) + nonPortableRid=haiku.r"$__uname_release"-"$targetArch" + fi + + echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')" +} + +# initDistroRidGlobal +# +# Input: +# os: (str) +# arch: (str) +# isPortable: (int) +# rootfsDir?: (nullable:string) +# +# Return: +# None +# +# Notes: +# +# It is important to note that the function does not return anything, but it +# exports the following variables on success: +# +# __DistroRid : Non-portable rid of the target platform. +# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform. +# +initDistroRidGlobal() +{ + local targetOs="$1" + local targetArch="$2" + local isPortable="$3" + local rootfsDir="" + if [ "$#" -ge 4 ]; then + rootfsDir="$4" + fi + + if [ -n "${rootfsDir}" ]; then + # We may have a cross build. Check for the existence of the rootfsDir + if [ ! -e "${rootfsDir}" ]; then + echo "Error rootfsDir has been passed, but the location is not valid." + exit 1 + fi + fi + + __DistroRid=$(getNonPortableDistroRid "${targetOs}" "${targetArch}" "${rootfsDir}") + + if [ -z "${__PortableTargetOS:-}" ]; then + __PortableTargetOS="$targetOs" + + STRINGS="$(command -v strings || true)" + if [ -z "$STRINGS" ]; then + STRINGS="$(command -v llvm-strings || true)" + fi + + # Check for musl-based distros (e.g Alpine Linux, Void Linux). + if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl || + ( [ -n "$STRINGS" ] && "$STRINGS" "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl ); then + __PortableTargetOS="linux-musl" + fi + fi + + export __DistroRid __PortableTargetOS +} diff --git a/eng/common/native/init-os-and-arch.sh b/eng/common/native/init-os-and-arch.sh new file mode 100644 index 0000000000..e693617a6c --- /dev/null +++ b/eng/common/native/init-os-and-arch.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +# Use uname to determine what the OS is. +OSName=$(uname -s | tr '[:upper:]' '[:lower:]') + +if command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then + OSName="android" +fi + +case "$OSName" in +freebsd|linux|netbsd|openbsd|sunos|android|haiku) + os="$OSName" ;; +darwin) + os=osx ;; +*) + echo "Unsupported OS $OSName detected!" + exit 1 ;; +esac + +# On Solaris, `uname -m` is discouraged, see https://docs.oracle.com/cd/E36784_01/html/E36870/uname-1.html +# and `uname -p` returns processor type (e.g. i386 on amd64). +# The appropriate tool to determine CPU is isainfo(1) https://docs.oracle.com/cd/E36784_01/html/E36870/isainfo-1.html. +if [ "$os" = "sunos" ]; then + if uname -o 2>&1 | grep -q illumos; then + os="illumos" + else + os="solaris" + fi + CPUName=$(isainfo -n) +else + # For the rest of the operating systems, use uname(1) to determine what the CPU is. + CPUName=$(uname -m) +fi + +case "$CPUName" in + arm64|aarch64) + arch=arm64 + ;; + + loongarch64) + arch=loongarch64 + ;; + + riscv64) + arch=riscv64 + ;; + + amd64|x86_64) + arch=x64 + ;; + + armv7l|armv8l) + if (NAME=""; . /etc/os-release; test "$NAME" = "Tizen"); then + arch=armel + else + arch=arm + fi + ;; + + armv6l) + arch=armv6 + ;; + + i[3-6]86) + echo "Unsupported CPU $CPUName detected, build might not succeed!" + arch=x86 + ;; + + s390x) + arch=s390x + ;; + + ppc64le) + arch=ppc64le + ;; + *) + echo "Unknown CPU $CPUName detected!" + exit 1 + ;; +esac diff --git a/global.json b/global.json index abeb6e1393..c9566a3937 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-preview.6.23330.14", + "dotnet": "8.0.100-preview.7.23376.3", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23404.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23404.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23411.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23411.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 9c9fa1f4945b0032930d5510b80f403c2c39acb9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 21 Aug 2023 12:25:13 +0000 Subject: [PATCH 15/50] Update dependencies from https://github.com/dotnet/arcade build 20230819.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23419.1 --- eng/Version.Details.xml | 24 ++++---- eng/Versions.props | 2 +- eng/common/SetupNugetSources.ps1 | 2 +- eng/common/SetupNugetSources.sh | 2 +- eng/common/native/init-compiler.sh | 2 +- eng/common/native/init-distro-rid.sh | 6 +- eng/common/sdl/trim-assets-version.ps1 | 75 ++++++++++++++++++++++++ eng/common/templates/job/execute-sdl.yml | 5 ++ eng/common/tools.ps1 | 6 +- global.json | 4 +- 10 files changed, 105 insertions(+), 23 deletions(-) create mode 100644 eng/common/sdl/trim-assets-version.ps1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 43cf76c529..c1a678150f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 9b2af35a6702526dc8a7c5fcadcc44efd0dca170 + 385129cbc980a515ddee2fa56f6b16f3183ed9bc https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index d657653822..9643901463 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23411.1 + 8.0.0-beta.23419.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 6e99723945..6c65e81925 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -153,7 +153,7 @@ if ($dotnet31Source -ne $null) { AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password } -$dotnetVersions = @('5','6','7') +$dotnetVersions = @('5','6','7','8') foreach ($dotnetVersion in $dotnetVersions) { $feedPrefix = "dotnet" + $dotnetVersion; diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index 8af7d899db..d387c7eac9 100755 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -105,7 +105,7 @@ if [ "$?" == "0" ]; then PackageSources+=('dotnet3.1-internal-transport') fi -DotNetVersions=('5' '6' '7') +DotNetVersions=('5' '6' '7' '8') for DotNetVersion in ${DotNetVersions[@]} ; do FeedPrefix="dotnet${DotNetVersion}"; diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh index 517401b688..f5c1ec7eaf 100644 --- a/eng/common/native/init-compiler.sh +++ b/eng/common/native/init-compiler.sh @@ -63,7 +63,7 @@ if [ -z "$CLR_CC" ]; then # Set default versions if [ -z "$majorVersion" ]; then # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. - if [ "$compiler" = "clang" ]; then versions="16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" + if [ "$compiler" = "clang" ]; then versions="17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi for version in $versions; do diff --git a/eng/common/native/init-distro-rid.sh b/eng/common/native/init-distro-rid.sh index aba9fe2402..de1687b2cc 100644 --- a/eng/common/native/init-distro-rid.sh +++ b/eng/common/native/init-distro-rid.sh @@ -79,7 +79,6 @@ getNonPortableDistroRid() # Input: # os: (str) # arch: (str) -# isPortable: (int) # rootfsDir?: (nullable:string) # # Return: @@ -97,10 +96,9 @@ initDistroRidGlobal() { local targetOs="$1" local targetArch="$2" - local isPortable="$3" local rootfsDir="" - if [ "$#" -ge 4 ]; then - rootfsDir="$4" + if [ "$#" -ge 3 ]; then + rootfsDir="$3" fi if [ -n "${rootfsDir}" ]; then diff --git a/eng/common/sdl/trim-assets-version.ps1 b/eng/common/sdl/trim-assets-version.ps1 new file mode 100644 index 0000000000..a2e0048770 --- /dev/null +++ b/eng/common/sdl/trim-assets-version.ps1 @@ -0,0 +1,75 @@ +<# +.SYNOPSIS +Install and run the 'Microsoft.DotNet.VersionTools.Cli' tool with the 'trim-artifacts-version' command to trim the version from the NuGet assets file name. + +.PARAMETER InputPath +Full path to directory where artifact packages are stored + +.PARAMETER Recursive +Search for NuGet packages recursively + +#> + +Param( + [string] $InputPath, + [bool] $Recursive = $true +) + +$CliToolName = "Microsoft.DotNet.VersionTools.Cli" + +function Install-VersionTools-Cli { + param( + [Parameter(Mandatory=$true)][string]$Version + ) + + Write-Host "Installing the package '$CliToolName' with a version of '$version' ..." + $feed = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" + + $argumentList = @("tool", "install", "--local", "$CliToolName", "--add-source $feed", "--no-cache", "--version $Version", "--create-manifest-if-needed") + Start-Process "$dotnet" -Verbose -ArgumentList $argumentList -NoNewWindow -Wait +} + +# ------------------------------------------------------------------- + +if (!(Test-Path $InputPath)) { + Write-Host "Input Path '$InputPath' does not exist" + ExitWithExitCode 1 +} + +$ErrorActionPreference = 'Stop' +Set-StrictMode -Version 2.0 + +$disableConfigureToolsetImport = $true +$global:LASTEXITCODE = 0 + +# `tools.ps1` checks $ci to perform some actions. Since the SDL +# scripts don't necessarily execute in the same agent that run the +# build.ps1/sh script this variable isn't automatically set. +$ci = $true +. $PSScriptRoot\..\tools.ps1 + +try { + $dotnetRoot = InitializeDotNetCli -install:$true + $dotnet = "$dotnetRoot\dotnet.exe" + + $toolsetVersion = Read-ArcadeSdkVersion + Install-VersionTools-Cli -Version $toolsetVersion + + $cliToolFound = (& "$dotnet" tool list --local | Where-Object {$_.Split(' ')[0] -eq $CliToolName}) + if ($null -eq $cliToolFound) { + Write-PipelineTelemetryError -Force -Category 'Sdl' -Message "The '$CliToolName' tool is not installed." + ExitWithExitCode 1 + } + + Exec-BlockVerbosely { + & "$dotnet" $CliToolName trim-assets-version ` + --assets-path $InputPath ` + --recursive $Recursive + Exit-IfNZEC "Sdl" + } +} +catch { + Write-Host $_ + Write-PipelineTelemetryError -Force -Category 'Sdl' -Message $_ + ExitWithExitCode 1 +} \ No newline at end of file diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml index 7aabaa1801..7870f93bc1 100644 --- a/eng/common/templates/job/execute-sdl.yml +++ b/eng/common/templates/job/execute-sdl.yml @@ -105,6 +105,11 @@ jobs: downloadPath: $(Build.ArtifactStagingDirectory)\artifacts checkDownloadedFiles: true + - powershell: eng/common/sdl/trim-assets-version.ps1 + -InputPath $(Build.ArtifactStagingDirectory)\artifacts + displayName: Trim the version from the NuGet packages + continueOnError: ${{ parameters.sdlContinueOnError }} + - powershell: eng/common/sdl/extract-artifact-packages.ps1 -InputPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts -ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index c9eced9f7d..aa74ab4a81 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -671,6 +671,10 @@ function InitializeNativeTools() { } } +function Read-ArcadeSdkVersion() { + return $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk' +} + function InitializeToolset() { if (Test-Path variable:global:_ToolsetBuildProj) { return $global:_ToolsetBuildProj @@ -678,7 +682,7 @@ function InitializeToolset() { $nugetCache = GetNuGetPackageCachePath - $toolsetVersion = $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk' + $toolsetVersion = Read-ArcadeSdkVersion $toolsetLocationFile = Join-Path $ToolsetDir "$toolsetVersion.txt" if (Test-Path $toolsetLocationFile) { diff --git a/global.json b/global.json index c9566a3937..17ba2bd9ff 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23411.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23411.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23419.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23419.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From b83340adc16d4e1c43365b8e6dea6ef7b5b23399 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 28 Aug 2023 12:26:42 +0000 Subject: [PATCH 16/50] Update dependencies from https://github.com/dotnet/arcade build 20230825.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23425.2 --- eng/Version.Details.xml | 24 +++++++++---------- eng/Versions.props | 2 +- eng/common/loc/P22DotNetHtmlLocalization.lss | Bin 3842 -> 1876 bytes global.json | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c1a678150f..6d866b74e8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 385129cbc980a515ddee2fa56f6b16f3183ed9bc + 90c167d5c57de4a8bced566379dbd893556c94e8 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 9643901463..b32d5fa51e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23419.1 + 8.0.0-beta.23425.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/loc/P22DotNetHtmlLocalization.lss b/eng/common/loc/P22DotNetHtmlLocalization.lss index 858a0b237c62ce4f2ee12aa14794f160f6b122b7..5d892d619398f9feeac4cefc1c53ff18a807f732 100644 GIT binary patch literal 1876 zcmd5-O>Y`85WVMDO!tse0|`=3Kq5qFvJwFroLr(PGHdUyD`QjJ8$y14$Ln3lZW2{J zwGs!I&o^(Lhrz|mTEa6oR%kVh&N`>j#re@-x_nwr2#IG`%ct-0baH+K&@f(3mgC!a zLE`z$`_TL4VSG6vqld@GGPwJ;L@RorHxAn^xdXw5(R4X4f7_@k)pTF-lorz22$--N zNp~~4=EJDUfxSBovWjDy#&0y*A$Y%{951Lgf#O!hPmkZU}#I!)Wng z1f<%)R3}u5SL$^NOII+VJC!`W+V>zz0i%$|xtEKJRoWJsS2-4>j6oFy0;9}2)ZXS? z!4+5B;BS?^g*W;n#c6Okuah`~R7l#LlUM`Wwgi;X`GgRCXg2Aj93+p!!wlyufdm#b2J0d!FWGIX~B#Nn{?*T z-%qWy16eI?CAp^@t!rT|vicQ-vsH(!kP=oLa9cnNr~Mvq*K+4!SBpR#0ixlQVLn!4 z_-b`9x-gH#c?z0gti{WerraQ#kQ%)%r?a{+35PnWsUFnNN^8lf0v68Oy&oSBa0E$V ze5J~88to5MDZA?699~0Him^%vH|v?chtS*Ws!BWhyEn^bjuBh5M+wg@h`3AQ cw&^?j6MgS4IM#l5)SHHef6(}&EB`Bh1GJK71^@s6 literal 3842 zcmd^?%T5$g5Qb}Q;yWB!uo4gwSD=IdDhbFa0~=!u%y4NlOykf9`fh|r;uZYH%XVd_Hn3nn?a)ScZi%Hfv^O?o^EPX*xG&pV zdv4F4*^+JAj(y{^Ze6Yo`)Kdu$~&GnS-les=(}Hd4Z$5-wa;woL^azeDs1)bFYF6K zYqo;O3eR7;3PMXZcdt9G7M2L|%(A;+cL+Vh<;40ia7DRYcz+HE1jrRpV_p*&!nF z$63@IaaFcvPRXqUT!EoEiMw~cG<%Xu1rqKRFp4w~aJ8hjgHT7ZDe-mb8W8O!t5`M} ztjgBRJpt|=SdiLxc+i9U&FGh9|IZv$NUelFF6qG*xY~f;wk`WWC*7iH2HNhpSVO7O zyjh))z5&gu%l(Qp>Nx07A`jIOXn!e02v|!Y!amv(`^`P?xq%*=(IC|pQx2Mm#Wop? zaijLey=o_a!^t>PhS7L4AbHDoC--rqkF#Y>vg5i&^y;GPmsmXHUEuiBT|Lj=5A8Un zViJHWkF=5jOaLV5s#-dX{vP4sfVZ=}?;@uYMqc~3{L6QHIy{PC)9lJ@k#y=HUqMdP z=#t_YRzBG-DDIK;Y5PHn(kQ#ieaMsI&5-MIikcQm zB9?pn%E>6AT}IUVSi2;S8K#g0d(Ee4XBw2{|D?DN(56#J`IN_F465Cx8|@w=tHXbj zU&@|NZLLZ7222|77ga@RWjf<2u>)ikm8K_A{31S!HRE05qRWsu=1qcb*PrKMEaNuH zxG7hoiSg&T9>yF6JSZ32L1c$;kl)UW(|FgMr)Xcsb Date: Mon, 4 Sep 2023 12:27:57 +0000 Subject: [PATCH 17/50] Update dependencies from https://github.com/dotnet/arcade build 20230901.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23451.1 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- eng/common/cross/toolchain.cmake | 2 +- global.json | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6d866b74e8..5306afe095 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 90c167d5c57de4a8bced566379dbd893556c94e8 + 4665b3d04e1da3796b965c3c3e3b97f55c449a6e https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index b32d5fa51e..896946de1c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23425.2 + 8.0.0-beta.23451.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index a88d643c8a..0998e875e5 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -207,6 +207,7 @@ elseif(ILLUMOS) set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp") elseif(HAIKU) set(CMAKE_SYSROOT "${CROSS_ROOTFS}") + set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin") set(TOOLSET_PREFIX ${TOOLCHAIN}-) function(locate_toolchain_exec exec var) @@ -217,7 +218,6 @@ elseif(HAIKU) endif() find_program(EXEC_LOCATION_${exec} - PATHS "${CROSS_ROOTFS}/cross-tools-x86_64/bin" NAMES "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" "${TOOLSET_PREFIX}${exec}") diff --git a/global.json b/global.json index a70ea641ed..c8ceba6426 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23425.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23425.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23451.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23451.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From b9cc1d7082297077f736cf8cc4ae0fcd2c7d0bee Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 11 Sep 2023 12:10:19 +0000 Subject: [PATCH 18/50] Update dependencies from https://github.com/dotnet/arcade build 20230901.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23451.1 From 6b7993880f71ed7441019e241f0acdb95e027421 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 18 Sep 2023 12:18:28 +0000 Subject: [PATCH 19/50] Update dependencies from https://github.com/dotnet/arcade build 20230913.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23463.1 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5306afe095..29d221c4c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 4665b3d04e1da3796b965c3c3e3b97f55c449a6e + 1d451c32dda2314c721adbf8829e1c0cd4e681ff https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 896946de1c..c6ff723e4a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23451.1 + 8.0.0-beta.23463.1 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index c8ceba6426..c7ccab0f30 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23451.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23451.1", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23463.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 80a9a3ade660edb3ab649d6c60a665c0cfa1919f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 25 Sep 2023 12:09:19 +0000 Subject: [PATCH 20/50] Update dependencies from https://github.com/dotnet/arcade build 20230913.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23463.1 From eaa79619f7d35347ed7f6bc1ee69c3314fbd3e47 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 2 Oct 2023 12:07:38 +0000 Subject: [PATCH 21/50] Update dependencies from https://github.com/dotnet/arcade build 20230913.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 8.0.0-beta.23463.1 From a60ce8b8ad249b09d9db630961a9e8fe6ad7cf14 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 9 Oct 2023 12:17:21 +0000 Subject: [PATCH 22/50] Update dependencies from https://github.com/dotnet/arcade build 20231008.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23508.1 --- eng/Version.Details.xml | 24 ++++++++++++------------ eng/Versions.props | 2 +- eng/common/sdk-task.ps1 | 2 +- eng/common/tools.ps1 | 6 +++--- global.json | 6 +++--- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 29d221c4c8..edf1f8970f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 822f095b8c815dd7b9161140a9ff8151de593f82 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index c6ff723e4a..8136e982a4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 8.0.0-beta.23463.1 + 9.0.0-beta.23508.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index 6c4ac6fec1..91f8196cc8 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.7.2-1" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index aa74ab4a81..84cfe7cd9c 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '17.6' + $vsMinVersionReqdStr = '17.7' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2 - $defaultXCopyMSBuildVersion = '17.6.0-2' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.7.2-1 + $defaultXCopyMSBuildVersion = '17.7.2-1' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/global.json b/global.json index c7ccab0f30..78f2c7d5c8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-preview.7.23376.3", + "dotnet": "8.0.100-rc.1.23455.8", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23463.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23508.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23508.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 6e6e344058a0cc8b59e92556fdb56016729d9894 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 16 Oct 2023 12:17:39 +0000 Subject: [PATCH 23/50] Update dependencies from https://github.com/dotnet/arcade build 20231010.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23510.4 --- eng/Version.Details.xml | 24 +++++++++---------- eng/Versions.props | 2 +- .../post-build/check-channel-consistency.ps1 | 2 +- global.json | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index edf1f8970f..3e64a66f78 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 822f095b8c815dd7b9161140a9ff8151de593f82 + 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 8136e982a4..448966405b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23508.1 + 9.0.0-beta.23510.4 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/post-build/check-channel-consistency.ps1 b/eng/common/post-build/check-channel-consistency.ps1 index 63f3464c98..1728f035a9 100644 --- a/eng/common/post-build/check-channel-consistency.ps1 +++ b/eng/common/post-build/check-channel-consistency.ps1 @@ -7,7 +7,7 @@ try { . $PSScriptRoot\post-build-utils.ps1 if ($PromoteToChannels -eq "") { - Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info." + Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info." ExitWithExitCode 0 } diff --git a/global.json b/global.json index 78f2c7d5c8..e85110934e 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23508.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23508.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23510.4", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23510.4", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 34308020e84567df9395662d8274f482bc744310 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 23 Oct 2023 12:17:25 +0000 Subject: [PATCH 24/50] Update dependencies from https://github.com/dotnet/arcade build 20231018.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23518.2 --- eng/Version.Details.xml | 24 +++++++++++----------- eng/Versions.props | 2 +- eng/common/build.sh | 2 +- eng/common/cross/build-rootfs.sh | 2 +- eng/common/cross/riscv64/tizen/tizen.patch | 9 ++++++++ eng/common/cross/tizen-build-rootfs.sh | 21 +++++++++++++++++++ eng/common/cross/tizen-fetch.sh | 17 ++++++++++++--- eng/common/cross/toolchain.cmake | 19 +++++++++++------ eng/common/sdk-task.ps1 | 2 +- eng/common/templates/job/job.yml | 2 +- eng/common/tools.ps1 | 4 ++-- global.json | 6 +++--- 12 files changed, 79 insertions(+), 31 deletions(-) create mode 100644 eng/common/cross/riscv64/tizen/tizen.patch diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3e64a66f78..a809dee9e5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 0e89c8d7ddbb54510d9d0a757fda5126021b79f0 + 6a5ca678aef84f34a1fccc46f76623f41da56553 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 448966405b..e1ada23738 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23510.4 + 9.0.0-beta.23518.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/build.sh b/eng/common/build.sh index 50af40cdd2..2c17ba529b 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -105,7 +105,7 @@ while [[ $# > 0 ]]; do -binarylog|-bl) binary_log=true ;; - -excludeCIBinarylog|-nobl) + -excludecibinarylog|-nobl) exclude_ci_binary_log=true ;; -pipelineslog|-pl) diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 9caf9b021d..4228f202e5 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -487,7 +487,7 @@ if [[ "$__CodeName" == "alpine" ]]; then -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ - search 'llvm*-libs' | sort | tail -1 | sed 's/-[^-]*//2g')" + search 'llvm*-libs' | grep -E '^llvm' | sort | tail -1 | sed 's/-[^-]*//2g')" fi # install all packages in one go diff --git a/eng/common/cross/riscv64/tizen/tizen.patch b/eng/common/cross/riscv64/tizen/tizen.patch new file mode 100644 index 0000000000..eb6d1c0747 --- /dev/null +++ b/eng/common/cross/riscv64/tizen/tizen.patch @@ -0,0 +1,9 @@ +diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so +--- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900 ++++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900 +@@ -2,4 +2,4 @@ + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ + OUTPUT_FORMAT(elf64-littleriscv) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-riscv64-lp64d.so.1 ) ) ++GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-riscv64-lp64d.so.1 ) ) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh index ac84173d44..ba31c93285 100644 --- a/eng/common/cross/tizen-build-rootfs.sh +++ b/eng/common/cross/tizen-build-rootfs.sh @@ -22,6 +22,10 @@ case "$ARCH" in TIZEN_ARCH="x86_64" LINK_ARCH="x86" ;; + riscv64) + TIZEN_ARCH="riscv64" + LINK_ARCH="riscv" + ;; *) echo "Unsupported architecture for tizen: $ARCH" exit 1 @@ -58,4 +62,21 @@ rm -rf $TIZEN_TMP_DIR echo ">>Start configuring Tizen rootfs" ln -sfn asm-${LINK_ARCH} ./usr/include/asm patch -p1 < $__TIZEN_CROSSDIR/tizen.patch +if [[ "$TIZEN_ARCH" == "riscv64" ]]; then + echo "Fixing broken symlinks in $PWD" + rm ./usr/lib64/libresolv.so + ln -s ../../lib64/libresolv.so.2 ./usr/lib64/libresolv.so + rm ./usr/lib64/libpthread.so + ln -s ../../lib64/libpthread.so.0 ./usr/lib64/libpthread.so + rm ./usr/lib64/libdl.so + ln -s ../../lib64/libdl.so.2 ./usr/lib64/libdl.so + rm ./usr/lib64/libutil.so + ln -s ../../lib64/libutil.so.1 ./usr/lib64/libutil.so + rm ./usr/lib64/libm.so + ln -s ../../lib64/libm.so.6 ./usr/lib64/libm.so + rm ./usr/lib64/librt.so + ln -s ../../lib64/librt.so.1 ./usr/lib64/librt.so + rm ./lib/ld-linux-riscv64-lp64d.so.1 + ln -s ../lib64/ld-linux-riscv64-lp64d.so.1 ./lib/ld-linux-riscv64-lp64d.so.1 +fi echo "< Date: Mon, 30 Oct 2023 12:16:31 +0000 Subject: [PATCH 25/50] Update dependencies from https://github.com/dotnet/arcade build 20231028.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23528.2 --- eng/Version.Details.xml | 30 +++++++++++++++--------------- eng/Versions.props | 2 +- eng/common/cross/toolchain.cmake | 10 +++++----- eng/common/tools.ps1 | 4 ++-- eng/common/tools.sh | 4 ++-- global.json | 4 ++-- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a809dee9e5..d70b3f0cfd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 6a5ca678aef84f34a1fccc46f76623f41da56553 + bb2b4326ddf03d86c92bd125dba87e9d8df63463 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - - https://github.com/dotnet/xliff-tasks - 397ff033b467003d51619f9ac3928e02a4d4178f + + https://github.com/dotnet/arcade + bb2b4326ddf03d86c92bd125dba87e9d8df63463 diff --git a/eng/Versions.props b/eng/Versions.props index e1ada23738..a352d1b1a7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23518.2 + 9.0.0-beta.23528.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 38e96724f5..00288a3006 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -40,7 +40,7 @@ if(TARGET_ARCH_NAME STREQUAL "arm") set(TOOLCHAIN "arm-linux-gnueabihf") endif() if(TIZEN) - set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/13.1.0") + set(TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0") endif() elseif(TARGET_ARCH_NAME STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR aarch64) @@ -49,7 +49,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64") elseif(LINUX) set(TOOLCHAIN "aarch64-linux-gnu") if(TIZEN) - set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/13.1.0") + set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0") endif() elseif(FREEBSD) set(triple "aarch64-unknown-freebsd12") @@ -58,7 +58,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "armel") set(CMAKE_SYSTEM_PROCESSOR armv7l) set(TOOLCHAIN "arm-linux-gnueabi") if(TIZEN) - set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/13.1.0") + set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0") endif() elseif(TARGET_ARCH_NAME STREQUAL "armv6") set(CMAKE_SYSTEM_PROCESSOR armv6l) @@ -98,7 +98,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64") elseif(LINUX) set(TOOLCHAIN "x86_64-linux-gnu") if(TIZEN) - set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/13.1.0") + set(TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0") endif() elseif(FREEBSD) set(triple "x86_64-unknown-freebsd12") @@ -115,7 +115,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") set(TOOLCHAIN "i686-linux-gnu") endif() if(TIZEN) - set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/13.1.0") + set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0") endif() else() message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!") diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index fdd0cbb91f..e8def7e6a8 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -158,7 +158,7 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { $env:DOTNET_MULTILEVEL_LOOKUP=0 # Disable first run since we do not need all ASP.NET packages restored. - $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + $env:DOTNET_NOLOGO=1 # Disable telemetry on CI. if ($ci) { @@ -228,7 +228,7 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { Write-PipelinePrependPath -Path $dotnetRoot Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' - Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1' + Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1' return $global:_DotNetInstallDir = $dotnetRoot } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index e8d4789433..710e64df96 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -112,7 +112,7 @@ function InitializeDotNetCli { export DOTNET_MULTILEVEL_LOOKUP=0 # Disable first run since we want to control all package sources - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + export DOTNET_NOLOGO=1 # Disable telemetry on CI if [[ $ci == true ]]; then @@ -165,7 +165,7 @@ function InitializeDotNetCli { Write-PipelinePrependPath -path "$dotnet_root" Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" - Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1" + Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1" # return value _InitializeDotNetCli="$dotnet_root" diff --git a/global.json b/global.json index 0b68db9072..fc50089365 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23518.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23518.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23528.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23528.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 7661ded4f6714292dec178a57699558298f2e3a9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 6 Nov 2023 13:17:20 +0000 Subject: [PATCH 26/50] Update dependencies from https://github.com/dotnet/arcade build 20231103.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23553.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- eng/common/tools.sh | 7 ++++++- global.json | 4 ++-- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d70b3f0cfd..bae7e3d30a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - bb2b4326ddf03d86c92bd125dba87e9d8df63463 + 1f067970472e5eb1877797bc4304dd13f284c7ba diff --git a/eng/Versions.props b/eng/Versions.props index a352d1b1a7..e6af9a48b8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23528.2 + 9.0.0-beta.23553.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 710e64df96..e7ec245bc4 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -341,7 +341,12 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - _InitializeBuildToolFramework="net8.0" + # use override if it exists - commonly set by source-build + if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then + _InitializeBuildToolFramework="net8.0" + else + _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" + fi } # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116 diff --git a/global.json b/global.json index fc50089365..4186d35053 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23528.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23528.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23553.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23553.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 178a1bae184db489e78ab2bc5a8a129ec543b12f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 13 Nov 2023 13:16:49 +0000 Subject: [PATCH 27/50] Update dependencies from https://github.com/dotnet/arcade build 20231110.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23560.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- eng/common/cross/toolchain.cmake | 4 ++++ eng/common/tools.sh | 2 +- global.json | 4 ++-- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bae7e3d30a..3ab49dabdf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - 1f067970472e5eb1877797bc4304dd13f284c7ba + 576b0a6fca70266087aa247d68896376ecec8c6e diff --git a/eng/Versions.props b/eng/Versions.props index e6af9a48b8..3f2dee36d3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23553.1 + 9.0.0-beta.23560.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index 00288a3006..3762640fdc 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -288,6 +288,8 @@ elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64|riscv64)$") add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64") add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}") endif() +elseif(TARGET_ARCH_NAME STREQUAL "s390x") + add_toolchain_linker_flag("--target=${TOOLCHAIN}") elseif(TARGET_ARCH_NAME STREQUAL "x86") if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) add_toolchain_linker_flag("--target=${TOOLCHAIN}") @@ -335,6 +337,8 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$") if(TARGET_ARCH_NAME STREQUAL "armel") add_compile_options(-mfloat-abi=softfp) endif() +elseif(TARGET_ARCH_NAME STREQUAL "s390x") + add_compile_options("--target=${TOOLCHAIN}") elseif(TARGET_ARCH_NAME STREQUAL "x86") if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) add_compile_options(--target=${TOOLCHAIN}) diff --git a/eng/common/tools.sh b/eng/common/tools.sh index e7ec245bc4..e98daf50c6 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -310,7 +310,7 @@ function GetDotNetInstallScript { curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || { if command -v openssl &> /dev/null; then echo "Curl failed; dumping some information about dotnet.microsoft.com for later investigation" - echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443 + echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443 || true fi echo "Will now retry the same URL with verbose logging." with_retries curl "$install_script_url" -sSL --verbose --retry 10 --create-dirs -o "$install_script" || { diff --git a/global.json b/global.json index 4186d35053..bc57502b5b 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23553.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23553.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23560.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23560.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From fa24677b98d2a90b4f8e158ce02e7429036fbe38 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 20 Nov 2023 13:16:36 +0000 Subject: [PATCH 28/50] Update dependencies from https://github.com/dotnet/arcade build 20231117.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23567.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- global.json | 6 +++--- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3ab49dabdf..ef63aa3466 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - 576b0a6fca70266087aa247d68896376ecec8c6e + b6801170e6ca8bf12bdff1f10d410c5e01660681 diff --git a/eng/Versions.props b/eng/Versions.props index 3f2dee36d3..f01c4cfb7d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0-preview.3.23174.8 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23560.1 + 9.0.0-beta.23567.1 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index bc57502b5b..aa03790cde 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-rtm.23506.1", + "dotnet": "8.0.100", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23560.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23560.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23567.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23567.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From a308a6d1ef996a6a772368035f209a680fbeee56 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Mon, 20 Nov 2023 20:32:22 -0700 Subject: [PATCH 29/50] Fixed version update breaks. --- .vsts-dotnet-ci.yml | 4 +- build/.night-build.yml | 4 +- build/.outer-loop-build.yml | 4 +- eng/Versions.props | 4 +- eng/helix.proj | 4 +- test/Directory.Build.props | 4 +- .../ArrowIntegrationTests.cs | 4 +- .../DataFrameJoinTests.cs | 8 +- .../ColumnInferenceTests.cs | 4 +- .../SuggestedPipelineBuilderTests.cs | 2 +- .../UnitTests/ColumnTypes.cs | 20 ++--- test/Microsoft.ML.FSharp.Tests/SmokeTests.fs | 40 +++++----- .../IntrospectiveTraining.cs | 8 +- .../Harness/Configs.cs | 2 +- .../Microsoft.ML.Sweeper.Tests/TestSweeper.cs | 34 +++++---- .../Attributes/BenchmarkTheoryAttribute.cs | 2 +- .../DataPipe/TestDataPipe.cs | 2 +- test/Microsoft.ML.TestFramework/GlobalBase.cs | 2 +- .../RemoteExecutor.cs | 2 +- .../TestCommandBase.cs | 9 ++- .../Data/github-issues-train.tsv | 76 +++++++++---------- .../Scenarios/Api/TestApi.cs | 4 +- test/Microsoft.ML.Tests/TextLoaderTests.cs | 4 +- 23 files changed, 125 insertions(+), 122 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 2b058953eb..0cff3e83af 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -135,12 +135,12 @@ jobs: _configuration: Debug _config_short: DFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 Release_Build: _configuration: Release _config_short: RFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 innerLoop: true vsTestConfiguration: "/Framework:.NETCoreApp,Version=v4.0" pool: diff --git a/build/.night-build.yml b/build/.night-build.yml index 7559b99ff2..b4b2243e97 100644 --- a/build/.night-build.yml +++ b/build/.night-build.yml @@ -100,12 +100,12 @@ jobs: _configuration: Debug _config_short: DFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 Release_Build: _configuration: Release _config_short: RFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 nightlyBuild: true pool: vmImage: windows-2019 diff --git a/build/.outer-loop-build.yml b/build/.outer-loop-build.yml index be125bfd76..f300f17037 100644 --- a/build/.outer-loop-build.yml +++ b/build/.outer-loop-build.yml @@ -94,12 +94,12 @@ jobs: _configuration: Debug _config_short: DFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 Release_Build: _configuration: Release _config_short: RFX _includeBenchmarkData: false - _targetFramework: net461 + _targetFramework: net462 pool: vmImage: windows-2019 diff --git a/eng/Versions.props b/eng/Versions.props index f01c4cfb7d..e001af29fc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -76,7 +76,7 @@ 5.4.7 0.12.0 6.0.9 - 8.0.0-preview.3.23174.8 + 8.0.0 5.10.2 1.1.2-beta1.22512.1 9.0.0-beta.23567.1 @@ -89,7 +89,7 @@ 4.6.1 1.0.113 1.2.7 - 2.4.2 + 2.5.3 false diff --git a/eng/helix.proj b/eng/helix.proj index ef55768a73..85ab64bbf9 100644 --- a/eng/helix.proj +++ b/eng/helix.proj @@ -141,9 +141,9 @@ $(BUILD_SOURCESDIRECTORY)\artifacts\bin\%(ProjectsWithTargetFramework.Filename)\$(BuildConfig)\%(ProjectsWithTargetFramework.TargetFrameworks)\ - $(BUILD_SOURCESDIRECTORY)\artifacts\bin\%(ProjectsWithTargetFramework.Filename)\$(BuildConfig)\%(ProjectsWithTargetFramework.TargetFrameworks)\win-x64 + $(BUILD_SOURCESDIRECTORY)\artifacts\bin\%(ProjectsWithTargetFramework.Filename)\$(BuildConfig)\%(ProjectsWithTargetFramework.TargetFrameworks)\win-x64 dotnet exec --roll-forward Major --runtimeconfig %(ProjectsWithTargetFramework.Filename).runtimeconfig.json --depsfile %(ProjectsWithTargetFramework.Filename).deps.json $(HelixCorrelationPayloadPath)/xunit-runner/tools/netcoreapp2.0/xunit.console.dll %(ProjectsWithTargetFramework.Filename).dll -notrait Category=SkipInCI -xml testResults.xml - $(HelixCorrelationPayloadPath)/xunit-runner/tools/net461/xunit.console.exe %(ProjectsWithTargetFramework.Filename).dll -notrait Category=SkipInCI -xml testResults.xml + $(HelixCorrelationPayloadPath)/xunit-runner/tools/net462/xunit.console.exe %(ProjectsWithTargetFramework.Filename).dll -notrait Category=SkipInCI -xml testResults.xml 01:00:00 00:30:00 $(WorkItemTimeout) diff --git a/test/Directory.Build.props b/test/Directory.Build.props index 8c5d8cd787..c5f7bb09a3 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -2,11 +2,11 @@ - net6.0;net461 + net6.0;net462 net6.0 net6.0 $(TestTargetFramework) - win-x64 + win-x64 true false true diff --git a/test/Microsoft.Data.Analysis.Tests/ArrowIntegrationTests.cs b/test/Microsoft.Data.Analysis.Tests/ArrowIntegrationTests.cs index dacf43a8db..76b74ae331 100644 --- a/test/Microsoft.Data.Analysis.Tests/ArrowIntegrationTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/ArrowIntegrationTests.cs @@ -127,7 +127,7 @@ RecordBatch CreateRecordBatch(string prependColumnNamesWith = "") } [Fact] - public void TestEmptyDataFrameRecordBatch() + public async void TestEmptyDataFrameRecordBatch() { PrimitiveDataFrameColumn ageColumn = new PrimitiveDataFrameColumn("Age"); PrimitiveDataFrameColumn lengthColumn = new PrimitiveDataFrameColumn("CharCount"); @@ -141,7 +141,7 @@ public void TestEmptyDataFrameRecordBatch() foundARecordBatch = true; MemoryStream stream = new MemoryStream(); ArrowStreamWriter writer = new ArrowStreamWriter(stream, recordBatch.Schema); - writer.WriteRecordBatchAsync(recordBatch).GetAwaiter().GetResult(); + await writer.WriteRecordBatchAsync(recordBatch); stream.Position = 0; ArrowStreamReader reader = new ArrowStreamReader(stream); diff --git a/test/Microsoft.Data.Analysis.Tests/DataFrameJoinTests.cs b/test/Microsoft.Data.Analysis.Tests/DataFrameJoinTests.cs index a465ee70f5..2db6e75b50 100644 --- a/test/Microsoft.Data.Analysis.Tests/DataFrameJoinTests.cs +++ b/test/Microsoft.Data.Analysis.Tests/DataFrameJoinTests.cs @@ -24,7 +24,7 @@ public void DataFrameJoinTests_GetSortedListsIntersection_EmptyCollections_Empty // Assert - Assert.Equal(0, intersection.Count); + Assert.Empty(intersection); } [Fact] @@ -47,7 +47,7 @@ public void DataFrameJoinTests_GetSortedListsIntersection_EmptyCollections_First // Assert - Assert.Equal(0, intersection.Count); + Assert.Empty(intersection); } [Fact] @@ -70,7 +70,7 @@ public void DataFrameJoinTests_GetSortedListsIntersection_EmptyCollections_Secon // Assert - Assert.Equal(0, intersection.Count); + Assert.Empty(intersection); } [Fact] @@ -101,7 +101,7 @@ public void DataFrameJoinTests_GetSortedListsIntersection_SortedCollections_With // Assert - Assert.Equal(0, intersection.Count); + Assert.Empty(intersection); } [Fact] diff --git a/test/Microsoft.ML.AutoML.Tests/ColumnInferenceTests.cs b/test/Microsoft.ML.AutoML.Tests/ColumnInferenceTests.cs index 558e5d6788..09d0aaffd7 100644 --- a/test/Microsoft.ML.AutoML.Tests/ColumnInferenceTests.cs +++ b/test/Microsoft.ML.AutoML.Tests/ColumnInferenceTests.cs @@ -223,8 +223,8 @@ public void InferColumnsFromMultilineInputFile() // File has 3 columns: "id", "description" and "animal" Assert.NotNull(result.ColumnInformation.LabelColumnName); - Assert.Equal(1, result.ColumnInformation.TextColumnNames.Count); - Assert.Equal(1, result.ColumnInformation.CategoricalColumnNames.Count); + Assert.Single(result.ColumnInformation.TextColumnNames); + Assert.Single(result.ColumnInformation.CategoricalColumnNames); Assert.Equal("id", result.ColumnInformation.LabelColumnName); Assert.Equal("description", result.ColumnInformation.TextColumnNames.First()); diff --git a/test/Microsoft.ML.AutoML.Tests/SuggestedPipelineBuilderTests.cs b/test/Microsoft.ML.AutoML.Tests/SuggestedPipelineBuilderTests.cs index be8d75ff8a..63cca8f878 100644 --- a/test/Microsoft.ML.AutoML.Tests/SuggestedPipelineBuilderTests.cs +++ b/test/Microsoft.ML.AutoML.Tests/SuggestedPipelineBuilderTests.cs @@ -46,7 +46,7 @@ public void TrainerNeedsNormalization() public void TrainerNotNeedNormalization() { var pipeline = BuildSuggestedPipeline(BuildLightGbmTrainer()); - Assert.Equal(0, pipeline.Transforms.Count); + Assert.Empty(pipeline.Transforms); } private static void TestPipelineBuilderCaching( diff --git a/test/Microsoft.ML.Core.Tests/UnitTests/ColumnTypes.cs b/test/Microsoft.ML.Core.Tests/UnitTests/ColumnTypes.cs index e50fa4ddee..8b59faf6bf 100644 --- a/test/Microsoft.ML.Core.Tests/UnitTests/ColumnTypes.cs +++ b/test/Microsoft.ML.Core.Tests/UnitTests/ColumnTypes.cs @@ -32,19 +32,19 @@ public void TestEqualAndGetHashCode() { var tmp = type; if (dict.ContainsKey(tmp) && dict[tmp] != tmp.ToString()) - Assert.True(false, dict[tmp] + " and " + tmp.ToString() + " are duplicates."); + Assert.Fail(dict[tmp] + " and " + tmp.ToString() + " are duplicates."); dict[tmp] = tmp.ToString(); for (int size = 0; size < 5; size++) { tmp1 = new VectorDataViewType(tmp, size); if (dict.ContainsKey(tmp1) && dict[tmp1] != tmp1.ToString()) - Assert.True(false, dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); + Assert.Fail(dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); dict[tmp1] = tmp1.ToString(); for (int size1 = 0; size1 < 5; size1++) { tmp2 = new VectorDataViewType(tmp, size, size1); if (dict.ContainsKey(tmp2) && dict[tmp2] != tmp2.ToString()) - Assert.True(false, dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); + Assert.Fail(dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); dict[tmp2] = tmp2.ToString(); } } @@ -59,19 +59,19 @@ public void TestEqualAndGetHashCode() { tmp = new KeyDataViewType(rawType, count); if (dict.ContainsKey(tmp) && dict[tmp] != tmp.ToString()) - Assert.True(false, dict[tmp] + " and " + tmp.ToString() + " are duplicates."); + Assert.Fail(dict[tmp] + " and " + tmp.ToString() + " are duplicates."); dict[tmp] = tmp.ToString(); for (int size = 0; size < 5; size++) { tmp1 = new VectorDataViewType(tmp, size); if (dict.ContainsKey(tmp1) && dict[tmp1] != tmp1.ToString()) - Assert.True(false, dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); + Assert.Fail(dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); dict[tmp1] = tmp1.ToString(); for (int size1 = 0; size1 < 5; size1++) { tmp2 = new VectorDataViewType(tmp, size, size1); if (dict.ContainsKey(tmp2) && dict[tmp2] != tmp2.ToString()) - Assert.True(false, dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); + Assert.Fail(dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); dict[tmp2] = tmp2.ToString(); } } @@ -79,19 +79,19 @@ public void TestEqualAndGetHashCode() Assert.True(rawType.TryGetDataKind(out var kind)); tmp = new KeyDataViewType(rawType, kind.ToMaxInt()); if (dict.ContainsKey(tmp) && dict[tmp] != tmp.ToString()) - Assert.True(false, dict[tmp] + " and " + tmp.ToString() + " are duplicates."); + Assert.Fail(dict[tmp] + " and " + tmp.ToString() + " are duplicates."); dict[tmp] = tmp.ToString(); for (int size = 0; size < 5; size++) { tmp1 = new VectorDataViewType(tmp, size); if (dict.ContainsKey(tmp1) && dict[tmp1] != tmp1.ToString()) - Assert.True(false, dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); + Assert.Fail(dict[tmp1] + " and " + tmp1.ToString() + " are duplicates."); dict[tmp1] = tmp1.ToString(); for (int size1 = 0; size1 < 5; size1++) { tmp2 = new VectorDataViewType(tmp, size, size1); if (dict.ContainsKey(tmp2) && dict[tmp2] != tmp2.ToString()) - Assert.True(false, dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); + Assert.Fail(dict[tmp2] + " and " + tmp2.ToString() + " are duplicates."); dict[tmp2] = tmp2.ToString(); } } @@ -104,7 +104,7 @@ public void TestEqualAndGetHashCode() { var tmp4 = new ImageDataViewType(height, width); if (dict.ContainsKey(tmp4)) - Assert.True(false, dict[tmp4] + " and " + tmp4.ToString() + " are duplicates."); + Assert.Fail(dict[tmp4] + " and " + tmp4.ToString() + " are duplicates."); dict[tmp4] = tmp4.ToString(); } } diff --git a/test/Microsoft.ML.FSharp.Tests/SmokeTests.fs b/test/Microsoft.ML.FSharp.Tests/SmokeTests.fs index 7e186b13e0..0f129eacfc 100644 --- a/test/Microsoft.ML.FSharp.Tests/SmokeTests.fs +++ b/test/Microsoft.ML.FSharp.Tests/SmokeTests.fs @@ -11,31 +11,31 @@ // environment, for example, see https://github.com/isaacabraham/ml-test-experiment/, but // here we list them explicitly to avoid the dependency on a package loader, // -// You should build Microsoft.ML.FSharp.Tests in Debug mode for framework net461 +// You should build Microsoft.ML.FSharp.Tests in Debug mode for framework net462 // before running this as a script with F# Interactive by editing the project // file to have: -// net6.0; net461 +// net6.0; net462 #if INTERACTIVE #r "netstandard" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.Core.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Google.Protobuf.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Newtonsoft.Json.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/System.CodeDom.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.CpuMath.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.Data.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.Transforms.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.ResultProcessor.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.PCA.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.KMeansClustering.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.FastTree.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.Api.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.Sweeper.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.StandardTrainers.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/Microsoft.ML.PipelineInference.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/xunit.core.dll" -#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net461/xunit.assert.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.Core.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Google.Protobuf.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Newtonsoft.Json.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/System.CodeDom.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.CpuMath.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.Data.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.Transforms.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.ResultProcessor.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.PCA.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.KMeansClustering.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.FastTree.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.Api.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.Sweeper.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.StandardTrainers.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/Microsoft.ML.PipelineInference.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/xunit.core.dll" +#r @"../../bin/AnyCPU.Debug/Microsoft.ML.FSharp.Tests/net462/xunit.assert.dll" #r "System" #r "System.Core" #r "System.Xml.Linq" diff --git a/test/Microsoft.ML.IntegrationTests/IntrospectiveTraining.cs b/test/Microsoft.ML.IntegrationTests/IntrospectiveTraining.cs index 018c75d046..16d0bfff76 100644 --- a/test/Microsoft.ML.IntegrationTests/IntrospectiveTraining.cs +++ b/test/Microsoft.ML.IntegrationTests/IntrospectiveTraining.cs @@ -59,8 +59,8 @@ public void InspectFastForestRegresionTrees() Assert.Equal(tree.SplitGains.Count, tree.NumberOfNodes); Assert.Equal(tree.NumericalSplitThresholds.Count, tree.NumberOfNodes); Assert.All(tree.CategoricalSplitFlags, flag => Assert.False(flag)); - Assert.Equal(0, tree.GetCategoricalSplitFeaturesAt(0).Count); - Assert.Equal(0, tree.GetCategoricalCategoricalSplitFeatureRangeAt(0).Count); + Assert.Empty(tree.GetCategoricalSplitFeaturesAt(0)); + Assert.Empty(tree.GetCategoricalCategoricalSplitFeatureRangeAt(0)); }); } @@ -103,8 +103,8 @@ public void InspectFastTreeModelParameters() Assert.Equal(tree.SplitGains.Count, tree.NumberOfNodes); Assert.Equal(tree.NumericalSplitThresholds.Count, tree.NumberOfNodes); Assert.All(tree.CategoricalSplitFlags, flag => Assert.False(flag)); - Assert.Equal(0, tree.GetCategoricalSplitFeaturesAt(0).Count); - Assert.Equal(0, tree.GetCategoricalCategoricalSplitFeatureRangeAt(0).Count); + Assert.Empty(tree.GetCategoricalSplitFeaturesAt(0)); + Assert.Empty(tree.GetCategoricalCategoricalSplitFeatureRangeAt(0)); }); // Add baselines for the model. diff --git a/test/Microsoft.ML.PerformanceTests/Harness/Configs.cs b/test/Microsoft.ML.PerformanceTests/Harness/Configs.cs index 71c24c5567..c529537a23 100644 --- a/test/Microsoft.ML.PerformanceTests/Harness/Configs.cs +++ b/test/Microsoft.ML.PerformanceTests/Harness/Configs.cs @@ -41,7 +41,7 @@ private IToolchain CreateToolchain() TimeSpan timeout = TimeSpan.FromMinutes(5); #if NETFRAMEWORK - var tfm = "net461"; + var tfm = "net462"; var csProj = CsProjClassicNetToolchain.From(tfm, timeout: timeout); #else var frameworkName = new FrameworkName(AppContext.TargetFrameworkName); diff --git a/test/Microsoft.ML.Sweeper.Tests/TestSweeper.cs b/test/Microsoft.ML.Sweeper.Tests/TestSweeper.cs index b9c8894584..b0abbc9086 100644 --- a/test/Microsoft.ML.Sweeper.Tests/TestSweeper.cs +++ b/test/Microsoft.ML.Sweeper.Tests/TestSweeper.cs @@ -120,14 +120,14 @@ public void TestRandomSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } } } [Fact] - public void TestSimpleSweeperAsync() + public async void TestSimpleSweeperAsync() { var random = new Random(42); var env = new MLContext(42); @@ -146,10 +146,11 @@ public void TestSimpleSweeperAsync() for (int i = 0; i < sweeps; i++) { var task = sweeper.ProposeAsync(); + var tResult = await task; Assert.True(task.IsCompleted); - paramSets.Add(task.Result.ParameterSet); - var result = new RunResult(task.Result.ParameterSet, random.NextDouble(), true); - sweeper.Update(task.Result.Id, result); + paramSets.Add(tResult.ParameterSet); + var result = new RunResult(tResult.ParameterSet, random.NextDouble(), true); + sweeper.Update(tResult.Id, result); } Assert.Equal(sweeps, paramSets.Count); CheckAsyncSweeperResult(paramSets); @@ -167,8 +168,9 @@ public void TestSimpleSweeperAsync() for (int i = 0; i < sweeps; i++) { var task = gridSweeper.ProposeAsync(); + var tResult = await task; Assert.True(task.IsCompleted); - paramSets.Add(task.Result.ParameterSet); + paramSets.Add(tResult.ParameterSet); } Assert.Equal(sweeps, paramSets.Count); CheckAsyncSweeperResult(paramSets); @@ -326,12 +328,12 @@ public void TestDeterministicSweeperAsyncParallel() int[] sleeps = new int[sweeps]; for (int i = 0; i < sleeps.Length; i++) sleeps[i] = random.Next(10, 100); - var r = Task.Run(() => Parallel.For(0, sweeps, options, (int i) => + var r = Task.Run(() => Parallel.For(0, sweeps, options, async (int i) => { var task = sweeper.ProposeAsync(); - task.Wait(); + var tResult = await task; Assert.Equal(TaskStatus.RanToCompletion, task.Status); - var paramWithId = task.Result; + var paramWithId = tResult; if (paramWithId == null) return; Thread.Sleep(sleeps[i]); @@ -417,7 +419,7 @@ private void CheckAsyncSweeperResult(List paramSets) } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } } @@ -464,7 +466,7 @@ public void TestRandomGridSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } Assert.False(gridPoint[i][j]); @@ -491,7 +493,7 @@ public void TestRandomGridSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } Assert.False(gridPoint[i][j]); @@ -523,7 +525,7 @@ public void TestRandomGridSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } Assert.False(gridPoint[i][j]); @@ -577,7 +579,7 @@ public void TestNelderMeadSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } results.Add(new RunResult(parameterSet, random.NextDouble(), true)); @@ -625,7 +627,7 @@ public void TestNelderMeadSweeperWithDefaultFirstBatchSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } results.Add(new RunResult(parameterSet, random.NextDouble(), true)); @@ -676,7 +678,7 @@ public void TestSmacSweeper() } else { - Assert.True(false, "Wrong parameter"); + Assert.Fail("Wrong parameter"); } } results.Add(new RunResult(parameterSet, random.NextDouble(), true)); diff --git a/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs b/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs index 982ec4e580..018748e18c 100644 --- a/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs +++ b/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs @@ -12,7 +12,7 @@ public sealed class BenchmarkTheoryAttribute : EnvironmentSpecificTheoryAttribut #if DEBUG private const string SkipMessage = "BenchmarkDotNet does not allow running the benchmarks in Debug, so this test is disabled for DEBUG"; private readonly bool _isEnvironmentSupported = false; -#elif NET461 +#elif net462 private const string SkipMessage = "We are currently not running Benchmarks for FullFramework"; private readonly bool _isEnvironmentSupported = false; #else diff --git a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs index 50281944d6..ee94efc676 100644 --- a/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs +++ b/test/Microsoft.ML.TestFramework/DataPipe/TestDataPipe.cs @@ -1611,7 +1611,7 @@ public void TestLdaTransformerEmptyDocumentException() return; } - Assert.True(false, "The LDA transform does not throw expected error on empty documents."); + Assert.Fail("The LDA transform does not throw expected error on empty documents."); } } } diff --git a/test/Microsoft.ML.TestFramework/GlobalBase.cs b/test/Microsoft.ML.TestFramework/GlobalBase.cs index d1404e11ff..016e3dfd9b 100644 --- a/test/Microsoft.ML.TestFramework/GlobalBase.cs +++ b/test/Microsoft.ML.TestFramework/GlobalBase.cs @@ -77,7 +77,7 @@ private static void AssertHandler(string msg, IExceptionContext ectx) else #endif { - Assert.True(false, $"Assert failed: {msg}"); + Assert.Fail($"Assert failed: {msg}"); } } diff --git a/test/Microsoft.ML.TestFramework/RemoteExecutor.cs b/test/Microsoft.ML.TestFramework/RemoteExecutor.cs index 365ce0d7c4..097de7ad8e 100644 --- a/test/Microsoft.ML.TestFramework/RemoteExecutor.cs +++ b/test/Microsoft.ML.TestFramework/RemoteExecutor.cs @@ -155,7 +155,7 @@ private static void CheckProcess(Process process, RemoteInvokeOptions options) private sealed class RemoteExecutionException : XunitException { - internal RemoteExecutionException(string stackTrace) : base("Remote process failed with an unhandled exception.", stackTrace) { } + internal RemoteExecutionException(string stackTrace) : base($"Remote process failed with an unhandled exception. {stackTrace}") { } } private static MethodInfo GetMethodInfo(Delegate d) diff --git a/test/Microsoft.ML.TestFramework/TestCommandBase.cs b/test/Microsoft.ML.TestFramework/TestCommandBase.cs index 7a07cf73c3..3fed0878a1 100644 --- a/test/Microsoft.ML.TestFramework/TestCommandBase.cs +++ b/test/Microsoft.ML.TestFramework/TestCommandBase.cs @@ -985,7 +985,7 @@ public void CommandCrossValidationAndSave() // FastTree internally fails if we try to run it simultaneously and if this happens we wouldn't get model file for training. [TestCategory(Cat)] [Fact] - public void CommandTrainFastTreeInDifferentThreads() + public async void CommandTrainFastTreeInDifferentThreads() { var dataPath = GetDataPath(TestDatasets.adult.testFilename); var firstModelOutPath = DeleteOutputPath("TreeTransform-model2.zip"); @@ -1001,10 +1001,11 @@ public void CommandTrainFastTreeInDifferentThreads() t[1] = new Task(() => MainForTest(secondTrainArgs)); t[0].Start(); t[1].Start(); - Task.WaitAll(t); + var t0 = await t[0]; + var t1 = await t[1]; - Assert.Equal(0, t[0].Result); - Assert.Equal(0, t[1].Result); + Assert.Equal(0, t0); + Assert.Equal(0, t1); } [TestCategory(Cat), TestCategory("FastTree")] diff --git a/test/Microsoft.ML.Tests/Data/github-issues-train.tsv b/test/Microsoft.ML.Tests/Data/github-issues-train.tsv index fece6f3f60..c5fc98c9e8 100644 --- a/test/Microsoft.ML.Tests/Data/github-issues-train.tsv +++ b/test/Microsoft.ML.Tests/Data/github-issues-train.tsv @@ -1542,7 +1542,7 @@ ID Area Title Description 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. +4477 area-System.Security Add missing X509ChainStatusFlags net462 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 net462, 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() @@ -3679,7 +3679,7 @@ ID Area Title Description 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) " +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 net462, 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 net462 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 @@ -3824,7 +3824,7 @@ ID Area Title Description 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 +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 net462, 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. @@ -4107,7 +4107,7 @@ ID Area Title Description 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%"" ] } } " +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 ""net462"", 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"", ""net462"" ] } ``` }, ""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. @@ -4304,7 +4304,7 @@ ID Area Title Description 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) +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 (net462): 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 @@ -5416,7 +5416,7 @@ ID Area Title Description 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 " +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"": { ""net462"": {} } /* ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0"" }, ""System.Numerics.Vectors"": ""4.1.1"" }, ""frameworks"": { ""netcoreapp1.0"": {} } */ } ``` test cases: 1. targeting net462, compiling as shown, Release mode: null ref on `input.CopyTo(inputs);` 2. targeting net462, swapping indicated lines, Release mode: incorrect console output 3. targeting net462, 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 @@ -5529,7 +5529,7 @@ ID Area Title Description 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?" +13504 area-Meta Publishing Core application targeting net462 "In order to use Oracle I'm targeting net462 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 net462?" 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. @@ -5576,7 +5576,7 @@ ID Area Title Description 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 +13565 area-Infrastructure Add facades This adds the building of netstandard.dll facade as well as the net462 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 net462 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 @@ -5611,7 +5611,7 @@ ID Area Title Description 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 +13619 area-Infrastructure Full framework test csproj referencing netstandard csproj using HttpClient fails at runtime I have a net462 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. @@ -6244,7 +6244,7 @@ ID Area Title Description 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. +14501 area-Infrastructure Update projects to netcoreapp2.0 / netstandard2.0 / net462 We need to update our projects to build against these new monikers and package as the same. Since netstandard2.0 is supported by net462 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 @@ -6802,7 +6802,7 @@ ID Area Title Description 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;)" +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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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. @@ -7070,7 +7070,7 @@ ID Area Title Description 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: ``` ```" +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`. @@ -7743,7 +7743,7 @@ ID Area Title Description 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. " +16913 area-System.IO dotnet core 1.1.0 and net462 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"": { ""net462"": { ""dependencies"": { }, ""frameworkAssemblies"": { ""System.Drawing"": ""4.0.0.0"" } }, ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"", ""net462"" ], ""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. @@ -8105,7 +8105,7 @@ ID Area Title Description 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." +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 `net462`). 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. @@ -8359,14 +8359,14 @@ ID Area Title Description 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. +17819 area-Infrastructure Ensure we build packages for everything that's been impacted by `net462` > `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 +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 net462 now that net462 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. @@ -9001,7 +9001,7 @@ ID Area Title Description 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. +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 `net462` 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 @@ -9080,7 +9080,7 @@ ID Area Title Description 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 +18849 area-Infrastructure Running MusicStore sample on net462 fails with an exception **Repro:** - Clone https://github.com/aspnet/MusicStore - Checkout the branch `kichalla/net462` - cd `samples/MusicStore` - dotnet restore - dotnet build - Run `samples\MusicStore\bin\Debug\net462\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." @@ -9214,7 +9214,7 @@ ID Area Title Description 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?" +19058 area-Infrastructure Breaking changes in CoreFx packages due to net462 > ns2.0 mapping "The remapping can cause ref-def mismatches when a NS1.5 or higher library is consumed in net462. 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 @@ -9435,7 +9435,7 @@ ID Area Title Description 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 +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. @@ -9476,7 +9476,7 @@ ID Area Title Description 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 " +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 net462 ``` ```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 ``` " @@ -9876,7 +9876,7 @@ ID Area Title Description 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. +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\net462 asset and a lib\netstandard2.0 asset and when a netcoreapp2.0 project has a fallback of net462 we will prefer the net462 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. @@ -10071,7 +10071,7 @@ ID Area Title Description 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(); ``` " +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 `net462` 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 @@ -10140,7 +10140,7 @@ ID Area Title Description 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. +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 net462. 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) @@ -10557,7 +10557,7 @@ ID Area Title Description 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) +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 net462 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. @@ -10961,7 +10961,7 @@ ID Area Title Description 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." +21530 area-System.Data Large performance gap in SqlCommand.ExecuteNonQuery between net462 and netcoreapp "Sharing the following code on a full framework net462 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 net462, 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 net462 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 @@ -11152,7 +11152,7 @@ ID Area Title Description 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/" +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 net462 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 ~~~ @@ -11782,7 +11782,7 @@ ID Area Title Description 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)" +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\net462\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. @@ -12114,7 +12114,7 @@ ID Area Title Description 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" +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\net462\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) @@ -12131,7 +12131,7 @@ ID Area Title Description 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 +23332 area-System.Net SslStream AuthenticateAsClientAsync throws when running under netcoreapp2.0 I have an app that I've been porting from net462 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 net462 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 net462 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 @@ -12189,7 +12189,7 @@ ID Area Title Description 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(); ``` " +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 net462 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 @@ -12365,13 +12365,13 @@ ID Area Title Description 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?" +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 net462?" 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 +23645 area-System.Runtime Runtime error with [OnDeserialized] in netstandard2.0 library running in framework461 project 1. Create new Project 1. Create net462 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 net462 +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 net462 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 " @@ -12510,7 +12510,7 @@ ID Area Title Description 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. +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 net462 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 net462 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; } } } } ``` @@ -12875,7 +12875,7 @@ ID Area Title Description 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. +24361 area-System.Net Problem with HttpClient after updating my project from net462 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 @@ -12960,7 +12960,7 @@ ID Area Title Description 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 " +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 net462: ``` 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 " @@ -12997,7 +12997,7 @@ ID Area Title Description 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." +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\net462\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`?" diff --git a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs index d701aa9876..1e9410cf16 100644 --- a/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs +++ b/test/Microsoft.ML.Tests/Scenarios/Api/TestApi.cs @@ -91,7 +91,7 @@ public void CursorChannelExposedInMapTransform() try { filter2.GetRowCursorForAllColumns().MoveNext(); - Assert.True(false, "Throw an error if attribute is applied to a field that is not an IChannel."); + Assert.Fail("Throw an error if attribute is applied to a field that is not an IChannel."); } catch (InvalidOperationException ex) { @@ -114,7 +114,7 @@ public void CursorChannelExposedInMapTransform() try { filter3.GetRowCursorForAllColumns().MoveNext(); - Assert.True(false, "Throw an error if attribute is applied to a field that is not an IChannel."); + Assert.Fail("Throw an error if attribute is applied to a field that is not an IChannel."); } catch (InvalidOperationException ex) { diff --git a/test/Microsoft.ML.Tests/TextLoaderTests.cs b/test/Microsoft.ML.Tests/TextLoaderTests.cs index 66e50efd9c..7242b69a8b 100644 --- a/test/Microsoft.ML.Tests/TextLoaderTests.cs +++ b/test/Microsoft.ML.Tests/TextLoaderTests.cs @@ -109,7 +109,7 @@ public void TestTextLoaderInvalidLongMin() return; } - Assert.True(false, "Test failed."); + Assert.Fail("Test failed."); } [Fact] @@ -133,7 +133,7 @@ public void TestTextLoaderInvalidLongMax() return; } - Assert.True(false, "Test failed."); + Assert.Fail("Test failed."); } } From 8f347e8a16b3f0abf1385d96c47fb396f58631f4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 27 Nov 2023 13:16:39 +0000 Subject: [PATCH 30/50] Update dependencies from https://github.com/dotnet/arcade build 20231122.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23572.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ef63aa3466..4d91a1d91c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - b6801170e6ca8bf12bdff1f10d410c5e01660681 + c5e5051496efbcc9046b25628666377d6b97a670 diff --git a/eng/Versions.props b/eng/Versions.props index e001af29fc..6f03bfbb42 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23567.1 + 9.0.0-beta.23572.2 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index aa03790cde..8123010514 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23567.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23567.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23572.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23572.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From fd1ae96d0008f10bc2a9002890060c1be8157063 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 4 Dec 2023 13:17:22 +0000 Subject: [PATCH 31/50] Update dependencies from https://github.com/dotnet/arcade build 20231201.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23601.1 --- eng/Version.Details.xml | 28 +++---- eng/Versions.props | 2 +- eng/common/darc-init.ps1 | 2 +- eng/common/darc-init.sh | 2 +- .../post-build/add-build-to-channel.ps1 | 2 +- eng/common/post-build/publish-using-darc.ps1 | 2 +- eng/common/post-build/redact-logs.ps1 | 81 +++++++++++++++++++ .../post-build/trigger-subscriptions.ps1 | 2 +- .../templates/job/publish-build-assets.yml | 6 +- .../templates/post-build/common-variables.yml | 4 +- .../templates/post-build/post-build.yml | 1 + eng/common/templates/steps/publish-logs.yml | 28 ++++++- global.json | 4 +- 13 files changed, 137 insertions(+), 27 deletions(-) create mode 100644 eng/common/post-build/redact-logs.ps1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4d91a1d91c..59cb145a19 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - c5e5051496efbcc9046b25628666377d6b97a670 + 38aa367e014493c6f6ebfe94d9029bea01d072c4 diff --git a/eng/Versions.props b/eng/Versions.props index 6f03bfbb42..77514d7c75 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23572.2 + 9.0.0-beta.23601.1 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1 index 435e764134..8fda30bdce 100644 --- a/eng/common/darc-init.ps1 +++ b/eng/common/darc-init.ps1 @@ -1,6 +1,6 @@ param ( $darcVersion = $null, - $versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16', + $versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16', $verbosity = 'minimal', $toolpath = $null ) diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 84c1d0cc2e..c305ae6bd7 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -2,7 +2,7 @@ source="${BASH_SOURCE[0]}" darcVersion='' -versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16' +versionEndpoint='https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16' verbosity='minimal' while [[ $# > 0 ]]; do diff --git a/eng/common/post-build/add-build-to-channel.ps1 b/eng/common/post-build/add-build-to-channel.ps1 index de2d957922..49938f0c89 100644 --- a/eng/common/post-build/add-build-to-channel.ps1 +++ b/eng/common/post-build/add-build-to-channel.ps1 @@ -2,7 +2,7 @@ param( [Parameter(Mandatory=$true)][int] $BuildId, [Parameter(Mandatory=$true)][int] $ChannelId, [Parameter(Mandatory=$true)][string] $MaestroApiAccessToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16' ) diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 8508397d77..1e779fec4d 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -3,7 +3,7 @@ param( [Parameter(Mandatory=$true)][int] $PublishingInfraVersion, [Parameter(Mandatory=$true)][string] $AzdoToken, [Parameter(Mandatory=$true)][string] $MaestroToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$true)][string] $WaitPublishingFinish, [Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters, [Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters diff --git a/eng/common/post-build/redact-logs.ps1 b/eng/common/post-build/redact-logs.ps1 new file mode 100644 index 0000000000..82d91f6fd0 --- /dev/null +++ b/eng/common/post-build/redact-logs.ps1 @@ -0,0 +1,81 @@ +[CmdletBinding(PositionalBinding=$False)] +param( + [Parameter(Mandatory=$true, Position=0)][string] $InputPath, + [Parameter(Mandatory=$true)][string] $BinlogToolVersion, + [Parameter(Mandatory=$false)][string] $DotnetPath, + [Parameter(Mandatory=$false)][string] $PackageFeed = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json', + # File with strings to redact - separated by newlines. + # For comments start the line with '# ' - such lines are ignored + [Parameter(Mandatory=$false)][string] $TokensFilePath, + [Parameter(ValueFromRemainingArguments=$true)][String[]]$TokensToRedact +) + +try { + . $PSScriptRoot\post-build-utils.ps1 + + $packageName = 'binlogtool' + + $dotnet = $DotnetPath + + if (!$dotnet) { + $dotnetRoot = InitializeDotNetCli -install:$true + $dotnet = "$dotnetRoot\dotnet.exe" + } + + $toolList = & "$dotnet" tool list -g + + if ($toolList -like "*$packageName*") { + & "$dotnet" tool uninstall $packageName -g + } + + $toolPath = "$PSScriptRoot\..\..\..\.tools" + $verbosity = 'minimal' + + New-Item -ItemType Directory -Force -Path $toolPath + + Push-Location -Path $toolPath + + try { + Write-Host "Installing Binlog redactor CLI..." + Write-Host "'$dotnet' new tool-manifest" + & "$dotnet" new tool-manifest + Write-Host "'$dotnet' tool install $packageName --local --add-source '$PackageFeed' -v $verbosity --version $BinlogToolVersion" + & "$dotnet" tool install $packageName --local --add-source "$PackageFeed" -v $verbosity --version $BinlogToolVersion + + if (Test-Path $TokensFilePath) { + Write-Host "Adding additional sensitive data for redaction from file: " $TokensFilePath + $TokensToRedact += Get-Content -Path $TokensFilePath | Foreach {$_.Trim()} | Where { $_ -notmatch "^# " } + } + + $optionalParams = [System.Collections.ArrayList]::new() + + Foreach ($p in $TokensToRedact) + { + if($p -match '^\$\(.*\)$') + { + Write-Host ("Ignoring token {0} as it is probably unexpanded AzDO variable" -f $p) + } + elseif($p) + { + $optionalParams.Add("-p:" + $p) | Out-Null + } + } + + & $dotnet binlogtool redact --input:$InputPath --recurse --in-place ` + @optionalParams + + if ($LastExitCode -ne 0) { + Write-PipelineTelemetryError -Category 'Redactor' -Type 'warning' -Message "Problems using Redactor tool (exit code: $LastExitCode). But ignoring them now." + } + } + finally { + Pop-Location + } + + Write-Host 'done.' +} +catch { + Write-Host $_ + Write-PipelineTelemetryError -Category 'Redactor' -Message "There was an error while trying to redact logs. Error: $_" + ExitWithExitCode 1 +} diff --git a/eng/common/post-build/trigger-subscriptions.ps1 b/eng/common/post-build/trigger-subscriptions.ps1 index 55dea518ac..ac9a95778f 100644 --- a/eng/common/post-build/trigger-subscriptions.ps1 +++ b/eng/common/post-build/trigger-subscriptions.ps1 @@ -2,7 +2,7 @@ param( [Parameter(Mandatory=$true)][string] $SourceRepo, [Parameter(Mandatory=$true)][int] $ChannelId, [Parameter(Mandatory=$true)][string] $MaestroApiAccessToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16' ) diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index 42017109f3..3b25fd9792 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -48,8 +48,8 @@ jobs: - group: AzureDevOps-Artifact-Feeds-Pats - name: runCodesignValidationInjection value: false - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: - - template: /eng/common/templates/post-build/common-variables.yml + # unconditional - needed for logs publishing (redactor tool version) + - template: /eng/common/templates/post-build/common-variables.yml pool: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) @@ -81,7 +81,7 @@ jobs: arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' /p:BuildAssetRegistryToken=$(MaestroAccessToken) - /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com + /p:MaestroApiEndpoint=https://maestro.dot.net /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(Build.BuildNumber) condition: ${{ parameters.condition }} diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index c24193acfc..4ef7bd271f 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -7,7 +7,7 @@ variables: # Default Maestro++ API Endpoint and API Version - name: MaestroApiEndPoint - value: "https://maestro-prod.westus2.cloudapp.azure.com" + value: "https://maestro.dot.net" - name: MaestroApiAccessToken value: $(MaestroAccessToken) - name: MaestroApiVersion @@ -17,6 +17,8 @@ variables: value: 3.0.0 - name: SymbolToolVersion value: 1.0.1 + - name: BinlogToolVersion + value: 1.0.8 - name: runCodesignValidationInjection value: false diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index ef720f9d78..d64236b28c 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -187,6 +187,7 @@ stages: parameters: StageLabel: 'Validation' JobLabel: 'Signing' + BinlogToolVersion: $(BinlogToolVersion) - job: displayName: SourceLink Validation diff --git a/eng/common/templates/steps/publish-logs.yml b/eng/common/templates/steps/publish-logs.yml index 88f238f36b..dadf1c464c 100644 --- a/eng/common/templates/steps/publish-logs.yml +++ b/eng/common/templates/steps/publish-logs.yml @@ -1,6 +1,9 @@ parameters: StageLabel: '' JobLabel: '' + CustomSensitiveDataList: '' + # A default - in case value from eng/common/templates/post-build/common-variables.yml is not passed + BinlogToolVersion: '1.0.8' steps: - task: Powershell@2 @@ -12,7 +15,30 @@ steps: Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - + +- task: PowerShell@2 + displayName: Redact Logs + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1 + # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml + # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + # If the file exists - sensitive data for redaction will be sourced from it + # (single entry per line, lines starting with '# ' are considered comments and skipped) + arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' + -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + '$(publishing-dnceng-devdiv-code-r-build-re)' + '$(MaestroAccessToken)' + '$(dn-bot-all-orgs-artifact-feeds-rw)' + '$(akams-client-id)' + '$(akams-client-secret)' + '$(microsoft-symbol-server-pat)' + '$(symweb-symbol-server-pat)' + '$(dn-bot-all-orgs-build-rw-code-rw)' + ${{parameters.CustomSensitiveDataList}} + continueOnError: true + condition: always() + - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: diff --git a/global.json b/global.json index 8123010514..d47ad3d5cc 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23572.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23572.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23601.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23601.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 2b15d08c434728bec4ff73ee8b356e6dfe0d7a7d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 11 Dec 2023 13:33:03 +0000 Subject: [PATCH 32/50] Update dependencies from https://github.com/dotnet/arcade build 20231207.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23607.2 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 59cb145a19..a0d9e177ec 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - 38aa367e014493c6f6ebfe94d9029bea01d072c4 + 3faeb9817f465151aa4bbcdb315f0a6170206760 diff --git a/eng/Versions.props b/eng/Versions.props index 77514d7c75..f7ebe944e3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23601.1 + 9.0.0-beta.23607.2 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index d47ad3d5cc..5f5b0886e7 100644 --- a/global.json +++ b/global.json @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23601.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23601.1", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23607.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23607.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 2b82866f1dfcb6ddc3801d9f70b103354acbed30 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 18 Dec 2023 13:35:12 +0000 Subject: [PATCH 33/50] Update dependencies from https://github.com/dotnet/arcade build 20231215.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23615.2 --- eng/Version.Details.xml | 28 ++++++++-------- eng/Versions.props | 2 +- eng/common/build.ps1 | 3 ++ eng/common/build.sh | 8 +++++ eng/common/sdl/trim-assets-version.ps1 | 2 +- .../templates/job/source-index-stage1.yml | 10 +++--- eng/common/templates/steps/source-build.yml | 4 +-- eng/common/tools.ps1 | 32 +++++++++---------- eng/common/tools.sh | 13 ++------ global.json | 6 ++-- 10 files changed, 56 insertions(+), 52 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a0d9e177ec..d0d6beb780 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - 3faeb9817f465151aa4bbcdb315f0a6170206760 + 2f7acdc5f9b87f260119bb32d01c24d2773773eb diff --git a/eng/Versions.props b/eng/Versions.props index f7ebe944e3..deb2b05ecf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -79,7 +79,7 @@ 8.0.0 5.10.2 1.1.2-beta1.22512.1 - 9.0.0-beta.23607.2 + 9.0.0-beta.23615.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index 33a6f2d0e2..066044f62f 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -19,6 +19,7 @@ Param( [switch] $pack, [switch] $publish, [switch] $clean, + [switch] $verticalBuild, [switch][Alias('bl')]$binaryLog, [switch][Alias('nobl')]$excludeCIBinarylog, [switch] $ci, @@ -58,6 +59,7 @@ function Print-Usage() { Write-Host " -sign Sign build outputs" Write-Host " -publish Publish artifacts (e.g. symbols)" Write-Host " -clean Clean the solution" + Write-Host " -verticalBuild Run in 'vertical build' infra mode." Write-Host "" Write-Host "Advanced settings:" @@ -120,6 +122,7 @@ function Build { /p:Deploy=$deploy ` /p:Test=$test ` /p:Pack=$pack ` + /p:ArcadeBuildVertical=$verticalBuild ` /p:IntegrationTest=$integrationTest ` /p:PerformanceTest=$performanceTest ` /p:Sign=$sign ` diff --git a/eng/common/build.sh b/eng/common/build.sh index 2c17ba529b..5ce01dd161 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -59,6 +59,7 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" restore=false build=false source_build=false +vertical_build=false rebuild=false test=false integration_test=false @@ -129,6 +130,12 @@ while [[ $# > 0 ]]; do restore=true pack=true ;; + -verticalbuild|-vb) + build=true + vertical_build=true + restore=true + pack=true + ;; -test|-t) test=true ;; @@ -220,6 +227,7 @@ function Build { /p:Restore=$restore \ /p:Build=$build \ /p:ArcadeBuildFromSource=$source_build \ + /p:ArcadeBuildVertical=$vertical_build \ /p:Rebuild=$rebuild \ /p:Test=$test \ /p:Pack=$pack \ diff --git a/eng/common/sdl/trim-assets-version.ps1 b/eng/common/sdl/trim-assets-version.ps1 index a2e0048770..0daa2a9e94 100644 --- a/eng/common/sdl/trim-assets-version.ps1 +++ b/eng/common/sdl/trim-assets-version.ps1 @@ -72,4 +72,4 @@ catch { Write-Host $_ Write-PipelineTelemetryError -Force -Category 'Sdl' -Message $_ ExitWithExitCode 1 -} \ No newline at end of file +} diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml index b98202aa02..7952336626 100644 --- a/eng/common/templates/job/source-index-stage1.yml +++ b/eng/common/templates/job/source-index-stage1.yml @@ -1,6 +1,6 @@ parameters: runAsPublic: false - sourceIndexPackageVersion: 1.0.1-20230228.2 + sourceIndexPackageVersion: 1.0.1-20231213.4 sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] @@ -30,20 +30,20 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - demands: ImageOverride -equals windows.vs2019.amd64.open + demands: ImageOverride -equals windows.vs2022.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2019.amd64 + demands: ImageOverride -equals windows.vs2022.amd64 steps: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - task: UseDotNet@2 - displayName: Use .NET Core SDK 6 + displayName: Use .NET 8 SDK inputs: packageType: sdk - version: 6.0.x + version: 8.0.x installationPath: $(Agent.TempDirectory)/dotnet workingDirectory: $(Agent.TempDirectory) diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index 41bbb91573..1d79797363 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -105,7 +105,7 @@ steps: Contents: | **/*.log **/*.binlog - artifacts/source-build/self/prebuilt-report/** + artifacts/sb/prebuilt-report/** TargetFolder: '$(Build.StagingDirectory)/BuildLogs' CleanTargetFolder: true continueOnError: true @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index e8def7e6a8..9048d60324 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -165,11 +165,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { $env:DOTNET_CLI_TELEMETRY_OPTOUT=1 } - # Source Build uses DotNetCoreSdkDir variable - if ($env:DotNetCoreSdkDir -ne $null) { - $env:DOTNET_INSTALL_DIR = $env:DotNetCoreSdkDir - } - # Find the first path on %PATH% that contains the dotnet.exe if ($useInstalledDotNetCli -and (-not $globalJsonHasRuntimes) -and ($env:DOTNET_INSTALL_DIR -eq $null)) { $dotnetExecutable = GetExecutableFileName 'dotnet' @@ -601,7 +596,7 @@ function InitializeBuildTool() { ExitWithExitCode 1 } $dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') - $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net8.0' } + $buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net9.0' } } elseif ($msbuildEngine -eq "vs") { try { $msbuildPath = InitializeVisualStudioMSBuild -install:$restore @@ -676,8 +671,14 @@ function Read-ArcadeSdkVersion() { } function InitializeToolset() { - if (Test-Path variable:global:_ToolsetBuildProj) { - return $global:_ToolsetBuildProj + # For Unified Build/Source-build support, check whether the environment variable is + # set. If it is, then use this as the toolset build project. + if ($env:_InitializeToolset -ne $null) { + return $global:_InitializeToolset = $env:_InitializeToolset + } + + if (Test-Path variable:global:_InitializeToolset) { + return $global:_InitializeToolset } $nugetCache = GetNuGetPackageCachePath @@ -688,7 +689,7 @@ function InitializeToolset() { if (Test-Path $toolsetLocationFile) { $path = Get-Content $toolsetLocationFile -TotalCount 1 if (Test-Path $path) { - return $global:_ToolsetBuildProj = $path + return $global:_InitializeToolset = $path } } @@ -711,7 +712,7 @@ function InitializeToolset() { throw "Invalid toolset path: $path" } - return $global:_ToolsetBuildProj = $path + return $global:_InitializeToolset = $path } function ExitWithExitCode([int] $exitCode) { @@ -763,12 +764,10 @@ function MSBuild() { # new scripts need to work with old packages, so we need to look for the old names/versions (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')), (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), - (Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.Arcade.Sdk.dll')) - (Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.Arcade.Sdk.dll')) (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')), - (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')) + (Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')), + (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')), + (Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll')) ) $selectedPath = $null foreach ($path in $possiblePaths) { @@ -827,7 +826,8 @@ function MSBuild-Core() { } } - $env:ARCADE_BUILD_TOOL_COMMAND = "$($buildTool.Path) $cmdArgs" + # Be sure quote the path in case there are spaces in the dotnet installation location. + $env:ARCADE_BUILD_TOOL_COMMAND = "`"$($buildTool.Path)`" $cmdArgs" $exitCode = Exec-Process $buildTool.Path $cmdArgs diff --git a/eng/common/tools.sh b/eng/common/tools.sh index e98daf50c6..ece4b73079 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -123,11 +123,6 @@ function InitializeDotNetCli { # so it doesn't output warnings to the console. export LTTNG_HOME="$HOME" - # Source Build uses DotNetCoreSdkDir variable - if [[ -n "${DotNetCoreSdkDir:-}" ]]; then - export DOTNET_INSTALL_DIR="$DotNetCoreSdkDir" - fi - # Find the first path on $PATH that contains the dotnet.exe if [[ "$use_installed_dotnet_cli" == true && $global_json_has_runtimes == false && -z "${DOTNET_INSTALL_DIR:-}" ]]; then local dotnet_path=`command -v dotnet` @@ -343,7 +338,7 @@ function InitializeBuildTool { _InitializeBuildToolCommand="msbuild" # use override if it exists - commonly set by source-build if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then - _InitializeBuildToolFramework="net8.0" + _InitializeBuildToolFramework="net9.0" else _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" fi @@ -458,12 +453,10 @@ function MSBuild { local possiblePaths=() possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" ) possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll" ) - possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.ArcadeLogging.dll" ) - possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.Arcade.Sdk.dll" ) possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" ) possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" ) + possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" ) + possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" ) for path in "${possiblePaths[@]}"; do if [[ -f $path ]]; then selectedPath=$path diff --git a/global.json b/global.json index 5f5b0886e7..af46bb48d9 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100", + "dotnet": "9.0.100-alpha.1.23615.4", "runtimes": { "dotnet/x64": [ "$(DotNetRuntime60Version)" @@ -11,8 +11,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23607.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23607.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23615.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23615.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 038f62ac69dd316d141fc87a7c9abfb1855b0dd3 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 09:42:00 -0800 Subject: [PATCH 34/50] Update XUnitVersion --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 758b445a99..69c9236227 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -91,7 +91,7 @@ 4.8.5 1.0.118 1.2.7 - 2.5.3 + 2.6.1 false From 938888235b920a647077a70b568e31de961af17f Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 09:49:06 -0800 Subject: [PATCH 35/50] Update MicrosoftMLOnnxRuntimeVersion to 1.16.3 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 69c9236227..a33d6e3a70 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -39,7 +39,7 @@ 3.3.0 3.9.0 1.0.0-beta.23509.3 - 1.14.0 + 1.16.3 0.0.0.12 + $(NoWarn);NETSDK1206 diff --git a/eng/Versions.props b/eng/Versions.props index a33d6e3a70..69c9236227 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -39,7 +39,7 @@ 3.3.0 3.9.0 1.0.0-beta.23509.3 - 1.16.3 + 1.14.0 0.0.0.12 false From 807d9dc0e5f28766edd1bc1eab9a1f7712624741 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 12:33:51 -0800 Subject: [PATCH 38/50] Ensure we pull down 8.0 runtime. --- global.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index af46bb48d9..3ff1f1f33c 100644 --- a/global.json +++ b/global.json @@ -3,10 +3,12 @@ "dotnet": "9.0.100-alpha.1.23615.4", "runtimes": { "dotnet/x64": [ - "$(DotNetRuntime60Version)" + "$(DotNetRuntime60Version)", + "$(DotNetRuntime80Version)" ], "dotnet/x86": [ - "$(DotNetRuntime60Version)" + "$(DotNetRuntime60Version)", + "$(DotNetRuntime80Version)" ] } }, From da5f62123afa1a753720108ed0061c78255da17d Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 12:38:05 -0800 Subject: [PATCH 39/50] Update Centos docker containers --- .vsts-dotnet-ci.yml | 2 +- build/.night-build.yml | 2 +- build/.outer-loop-build.yml | 2 +- build/vsts-ci.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index cd05b1802e..eb67c72804 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -19,7 +19,7 @@ trigger: resources: containers: - container: CentosContainer - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet - container: UbuntuContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-mlnet diff --git a/build/.night-build.yml b/build/.night-build.yml index 83c7645cee..d17393bc46 100644 --- a/build/.night-build.yml +++ b/build/.night-build.yml @@ -22,7 +22,7 @@ schedules: resources: containers: - container: CentosContainer - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet - container: UbuntuContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-mlnet diff --git a/build/.outer-loop-build.yml b/build/.outer-loop-build.yml index 27f1b935ab..2c58e6aacd 100644 --- a/build/.outer-loop-build.yml +++ b/build/.outer-loop-build.yml @@ -23,7 +23,7 @@ schedules: resources: containers: - container: CentosContainer - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet - container: UbuntuContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-mlnet diff --git a/build/vsts-ci.yml b/build/vsts-ci.yml index 9487484d14..85d6cfc5ff 100644 --- a/build/vsts-ci.yml +++ b/build/vsts-ci.yml @@ -5,7 +5,7 @@ resources: containers: - container: CentosContainer - image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet + image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet - container: UbuntuCrossArmContainer image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-mlnet-cross-arm From 51b0cce1ab742cb563ccd3aa8ddd8a6944c7890e Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 13:13:46 -0800 Subject: [PATCH 40/50] Fix packaging step --- Directory.Build.props | 3 +-- src/Microsoft.ML.Mkl.Redist/CompatibilitySuppressions.xml | 8 -------- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 src/Microsoft.ML.Mkl.Redist/CompatibilitySuppressions.xml diff --git a/Directory.Build.props b/Directory.Build.props index 19aaa1b11f..1fe944cfee 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -57,8 +57,7 @@ true - + true - snupkg diff --git a/src/Microsoft.ML.Mkl.Redist/CompatibilitySuppressions.xml b/src/Microsoft.ML.Mkl.Redist/CompatibilitySuppressions.xml deleted file mode 100644 index 90523af626..0000000000 --- a/src/Microsoft.ML.Mkl.Redist/CompatibilitySuppressions.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PKV006 - .NETStandard,Version=v2.0 - - \ No newline at end of file From c0cbaa9041520668c0a5233651b0e4549b7d13a2 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 13:23:35 -0800 Subject: [PATCH 41/50] Try including stdint.h to fix missing uint8_t on centos --- src/Native/Stdafx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Native/Stdafx.h b/src/Native/Stdafx.h index 4008ebd012..e1b37c7092 100644 --- a/src/Native/Stdafx.h +++ b/src/Native/Stdafx.h @@ -7,6 +7,7 @@ #include #include #include +#include #define UNUSED(x) (void)(x) #define DEBUG_ONLY(x) (void)(x) From 5fa79bc1006cbcab7120a6ff4e93f51038540c13 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 14:29:34 -0800 Subject: [PATCH 42/50] Update Centos test queue --- .vsts-dotnet-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index eb67c72804..93d629d6b6 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -86,7 +86,7 @@ jobs: pool: name: NetCore-Public demands: ImageOverride -equals build.ubuntu.1804.amd64.open - helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet-helix + helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet - template: /build/ci/job-template.yml parameters: From f28adefc22243fa4b68d8c24ce9ac7016a145455 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 19 Dec 2023 17:24:01 -0800 Subject: [PATCH 43/50] Attempt to use runtime centos-stream8-helix container for tests --- .vsts-dotnet-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 93d629d6b6..a10270aba7 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -86,7 +86,7 @@ jobs: pool: name: NetCore-Public demands: ImageOverride -equals build.ubuntu.1804.amd64.open - helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet + helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-helix - template: /build/ci/job-template.yml parameters: From e5854875edb0cc716d112c3214f6da5e03cb7063 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 20 Dec 2023 11:25:14 -0800 Subject: [PATCH 44/50] Use centos-stream8-mlnet-helix container for testing --- .vsts-dotnet-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index a10270aba7..9ad25d0b1a 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -86,7 +86,7 @@ jobs: pool: name: NetCore-Public demands: ImageOverride -equals build.ubuntu.1804.amd64.open - helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-helix + helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet-helix - template: /build/ci/job-template.yml parameters: From 4a404f342de6348e9b65c589569f63133f678a43 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 22 Dec 2023 14:18:08 -0800 Subject: [PATCH 45/50] Undo changes to test data --- .../Data/github-issues-train.tsv | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/test/Microsoft.ML.Tests/Data/github-issues-train.tsv b/test/Microsoft.ML.Tests/Data/github-issues-train.tsv index c5fc98c9e8..fece6f3f60 100644 --- a/test/Microsoft.ML.Tests/Data/github-issues-train.tsv +++ b/test/Microsoft.ML.Tests/Data/github-issues-train.tsv @@ -1542,7 +1542,7 @@ ID Area Title Description 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 net462 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 net462, that change should also be ported over to corefx. +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() @@ -3679,7 +3679,7 @@ ID Area Title Description 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 net462, 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 net462 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) " +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 @@ -3824,7 +3824,7 @@ ID Area Title Description 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 net462, 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 +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. @@ -4107,7 +4107,7 @@ ID Area Title Description 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 ""net462"", 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"", ""net462"" ] } ``` }, ""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%"" ] } } " +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. @@ -4304,7 +4304,7 @@ ID Area Title Description 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 (net462): public void Add(Cookie cookie) Existing definition (netstandard1.6): internal void Add(Cookie cookie) +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 @@ -5416,7 +5416,7 @@ ID Area Title Description 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"": { ""net462"": {} } /* ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0"" }, ""System.Numerics.Vectors"": ""4.1.1"" }, ""frameworks"": { ""netcoreapp1.0"": {} } */ } ``` test cases: 1. targeting net462, compiling as shown, Release mode: null ref on `input.CopyTo(inputs);` 2. targeting net462, swapping indicated lines, Release mode: incorrect console output 3. targeting net462, 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 " +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 @@ -5529,7 +5529,7 @@ ID Area Title Description 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 net462 "In order to use Oracle I'm targeting net462 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 net462?" +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. @@ -5576,7 +5576,7 @@ ID Area Title Description 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 net462 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 net462 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 +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 @@ -5611,7 +5611,7 @@ ID Area Title Description 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 net462 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 +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. @@ -6244,7 +6244,7 @@ ID Area Title Description 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 / net462 We need to update our projects to build against these new monikers and package as the same. Since netstandard2.0 is supported by net462 most desktop builds should be targeting this version rather than net463. +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 @@ -6802,7 +6802,7 @@ ID Area Title Description 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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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/net462/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;)" +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. @@ -7070,7 +7070,7 @@ ID Area Title Description 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: ``` ```" +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`. @@ -7743,7 +7743,7 @@ ID Area Title Description 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 net462 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"": { ""net462"": { ""dependencies"": { }, ""frameworkAssemblies"": { ""System.Drawing"": ""4.0.0.0"" } }, ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"", ""net462"" ], ""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. " +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. @@ -8105,7 +8105,7 @@ ID Area Title Description 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 `net462`). 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." +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. @@ -8359,14 +8359,14 @@ ID Area Title Description 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 `net462` > `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. +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 net462 now that net462 supports netstandard2.0. Previously this API was only supported starting with net462. /cc @weshaggard @pranavkm +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. @@ -9001,7 +9001,7 @@ ID Area Title Description 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 `net462` 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. +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 @@ -9080,7 +9080,7 @@ ID Area Title Description 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 net462 fails with an exception **Repro:** - Clone https://github.com/aspnet/MusicStore - Checkout the branch `kichalla/net462` - cd `samples/MusicStore` - dotnet restore - dotnet build - Run `samples\MusicStore\bin\Debug\net462\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 +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." @@ -9214,7 +9214,7 @@ ID Area Title Description 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 net462 > ns2.0 mapping "The remapping can cause ref-def mismatches when a NS1.5 or higher library is consumed in net462. 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?" +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 @@ -9435,7 +9435,7 @@ ID Area Title Description 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 +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. @@ -9476,7 +9476,7 @@ ID Area Title Description 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 net462 ``` ```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 " +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 ``` " @@ -9876,7 +9876,7 @@ ID Area Title Description 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\net462 asset and a lib\netstandard2.0 asset and when a netcoreapp2.0 project has a fallback of net462 we will prefer the net462 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. +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. @@ -10071,7 +10071,7 @@ ID Area Title Description 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 `net462` 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(); ``` " +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 @@ -10140,7 +10140,7 @@ ID Area Title Description 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 net462. 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. +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) @@ -10557,7 +10557,7 @@ ID Area Title Description 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 net462 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) +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. @@ -10961,7 +10961,7 @@ ID Area Title Description 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 net462 and netcoreapp "Sharing the following code on a full framework net462 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 net462, 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 net462 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." +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 @@ -11152,7 +11152,7 @@ ID Area Title Description 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 net462 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/" +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 ~~~ @@ -11782,7 +11782,7 @@ ID Area Title Description 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\net462\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)" +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. @@ -12114,7 +12114,7 @@ ID Area Title Description 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\net462\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" +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) @@ -12131,7 +12131,7 @@ ID Area Title Description 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 net462 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 net462 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 net462 on Windows 7 everything works fine. I'm using the official release of the tooling from dot.net +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 @@ -12189,7 +12189,7 @@ ID Area Title Description 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 net462 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(); ``` " +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 @@ -12365,13 +12365,13 @@ ID Area Title Description 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 net462?" +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 net462 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 net462 -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 net462 the above code works. [EDIT[ Fix C# syntax highlighting by @karelz +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 " @@ -12510,7 +12510,7 @@ ID Area Title Description 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 net462 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 net462 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. +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; } } } } ``` @@ -12875,7 +12875,7 @@ ID Area Title Description 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 net462 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. +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 @@ -12960,7 +12960,7 @@ ID Area Title Description 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 net462: ``` 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 " +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 " @@ -12997,7 +12997,7 @@ ID Area Title Description 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\net462\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." +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`?" From 75b3706f4e621408ff3087f389e545b8cec538e3 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 22 Dec 2023 14:18:43 -0800 Subject: [PATCH 46/50] Make NETFRAMEWORK ifdef versionless --- .../Attributes/BenchmarkTheoryAttribute.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs b/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs index 018748e18c..28d58bd829 100644 --- a/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs +++ b/test/Microsoft.ML.TestFramework/Attributes/BenchmarkTheoryAttribute.cs @@ -12,7 +12,7 @@ public sealed class BenchmarkTheoryAttribute : EnvironmentSpecificTheoryAttribut #if DEBUG private const string SkipMessage = "BenchmarkDotNet does not allow running the benchmarks in Debug, so this test is disabled for DEBUG"; private readonly bool _isEnvironmentSupported = false; -#elif net462 +#elif NETFRAMEWORK private const string SkipMessage = "We are currently not running Benchmarks for FullFramework"; private readonly bool _isEnvironmentSupported = false; #else From ab0d41e4b77f40b7207c222053b8299c2c364e6d Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 22 Dec 2023 14:21:22 -0800 Subject: [PATCH 47/50] Switch back to centos7 for testing --- .vsts-dotnet-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 9ad25d0b1a..93ba3fc897 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -86,7 +86,7 @@ jobs: pool: name: NetCore-Public demands: ImageOverride -equals build.ubuntu.1804.amd64.open - helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet-helix + helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet - template: /build/ci/job-template.yml parameters: From 56511acabec854d30bb404d5a471bb3382b541f7 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Fri, 22 Dec 2023 15:23:34 -0800 Subject: [PATCH 48/50] Revert "Switch back to centos7 for testing" This reverts commit ab0d41e4b77f40b7207c222053b8299c2c364e6d. --- .vsts-dotnet-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index 93ba3fc897..9ad25d0b1a 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -86,7 +86,7 @@ jobs: pool: name: NetCore-Public demands: ImageOverride -equals build.ubuntu.1804.amd64.open - helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-mlnet + helixQueue: Ubuntu.1804.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8-mlnet-helix - template: /build/ci/job-template.yml parameters: From 27b544f68d85b72407c68645be8b1273f4bbad13 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 25 Dec 2023 13:38:30 +0000 Subject: [PATCH 49/50] Update dependencies from https://github.com/dotnet/arcade build 20231221.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23621.2 --- NuGet.config | 2 +- eng/Version.Details.xml | 28 +++++++++---------- eng/Versions.props | 2 +- eng/common/build.cmd | 3 ++ eng/common/templates/job/job.yml | 2 +- .../templates/job/publish-build-assets.yml | 2 +- .../templates/post-build/common-variables.yml | 2 +- .../templates/post-build/post-build.yml | 4 +-- eng/common/templates/steps/publish-logs.yml | 2 +- global.json | 4 +-- 10 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 eng/common/build.cmd diff --git a/NuGet.config b/NuGet.config index eed95518c1..cf1fc2312f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -1,4 +1,4 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d0d6beb780..1c6db787d0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - 2f7acdc5f9b87f260119bb32d01c24d2773773eb + a1e4795fcba619bba3534700b660ad6d2e3ce859 diff --git a/eng/Versions.props b/eng/Versions.props index add4a2db7b..6850cc405f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -81,7 +81,7 @@ 8.0.0 5.10.2 1.1.2-beta1.23431.1 - 9.0.0-beta.23615.2 + 9.0.0-beta.23621.2 2.1.0 3.0.1 0.0.6-test diff --git a/eng/common/build.cmd b/eng/common/build.cmd new file mode 100644 index 0000000000..99daf368ab --- /dev/null +++ b/eng/common/build.cmd @@ -0,0 +1,3 @@ +@echo off +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build.ps1""" %*" +exit /b %ErrorLevel% diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 0b01531357..01c0dd995e 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -136,7 +136,7 @@ jobs: condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: - - task: NuGetAuthenticate@0 + - task: NuGetAuthenticate@1 - ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}: - task: DownloadPipelineArtifact@2 diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index 3b25fd9792..d9c5b4aaf9 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -72,7 +72,7 @@ jobs: condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - - task: NuGetAuthenticate@0 + - task: NuGetAuthenticate@1 - task: PowerShell@2 displayName: Publish Build Assets diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index 4ef7bd271f..d7bf5c6e35 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -18,7 +18,7 @@ variables: - name: SymbolToolVersion value: 1.0.1 - name: BinlogToolVersion - value: 1.0.8 + value: 1.0.9 - name: runCodesignValidationInjection value: false diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index d64236b28c..bbc010fe73 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -169,7 +169,7 @@ stages: # This is necessary whenever we want to publish/restore to an AzDO private feed # Since sdk-task.ps1 tries to restore packages we need to do this authentication here # otherwise it'll complain about accessing a private feed. - - task: NuGetAuthenticate@0 + - task: NuGetAuthenticate@1 displayName: 'Authenticate to AzDO Feeds' # Signing validation will optionally work with the buildmanifest file which is downloaded from @@ -267,7 +267,7 @@ stages: BARBuildId: ${{ parameters.BARBuildId }} PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} - - task: NuGetAuthenticate@0 + - task: NuGetAuthenticate@1 - task: PowerShell@2 displayName: Publish Using Darc diff --git a/eng/common/templates/steps/publish-logs.yml b/eng/common/templates/steps/publish-logs.yml index dadf1c464c..835e527512 100644 --- a/eng/common/templates/steps/publish-logs.yml +++ b/eng/common/templates/steps/publish-logs.yml @@ -3,7 +3,7 @@ parameters: JobLabel: '' CustomSensitiveDataList: '' # A default - in case value from eng/common/templates/post-build/common-variables.yml is not passed - BinlogToolVersion: '1.0.8' + BinlogToolVersion: '1.0.9' steps: - task: Powershell@2 diff --git a/global.json b/global.json index 3ff1f1f33c..3194a73d54 100644 --- a/global.json +++ b/global.json @@ -13,8 +13,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23615.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23615.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23621.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23621.2", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" From 501826e8212d9f0b9326e2800c2f22a8ef1a390d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 1 Jan 2024 13:38:57 +0000 Subject: [PATCH 50/50] Update dependencies from https://github.com/dotnet/arcade build 20231228.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.SignTool , Microsoft.DotNet.SwaggerGenerator.MSBuild , Microsoft.DotNet.XliffTasks , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.23265.1 -> To Version 9.0.0-beta.23628.1 --- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 2 +- global.json | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1c6db787d0..b12195cacd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,25 +7,25 @@ - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 https://github.com/dotnet/arcade-services @@ -39,9 +39,9 @@ https://github.com/dotnet/xharness 89cb4b1d368e0f15b4df8e02a176dd1f1c33958b - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 https://github.com/dotnet/roslyn @@ -63,9 +63,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/arcade - a1e4795fcba619bba3534700b660ad6d2e3ce859 + 9e5fd26c0d1a187dfa08242d83e341634d4b1b07 diff --git a/eng/Versions.props b/eng/Versions.props index 6850cc405f..664669e5b8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -81,7 +81,7 @@ 8.0.0 5.10.2 1.1.2-beta1.23431.1 - 9.0.0-beta.23621.2 + 9.0.0-beta.23628.1 2.1.0 3.0.1 0.0.6-test diff --git a/global.json b/global.json index 3194a73d54..40b88952ee 100644 --- a/global.json +++ b/global.json @@ -13,8 +13,8 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23621.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23621.2", + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23628.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.23628.1", "Microsoft.Build.Traversal": "3.2.0", "Microsoft.SourceLink.GitHub": "1.1.0-beta-20206-02", "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02"