From c9e25e545fbd19a5ba81beaacfffecd4ba8e3845 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 Sep 2024 07:15:35 -0700 Subject: [PATCH] SFI: ROPC - another chunk (#42602) --- .openpublishing.redirection.framework.json | 8 + .../semantic-kernel/IdentityExamples.cs | 4 +- .../feature-details/authentication-in-wcf.md | 53 +- ...custom-user-name-and-password-validator.md | 121 - .../migrating-wse-3-0-web-services-to-wcf.md | 238 +- docs/framework/wcf/feature-details/toc.yml | 2 - .../wcf/samples/security-extensibility.md | 3 - docs/framework/wcf/samples/toc.yml | 2 - .../samples/user-name-password-validator.md | 311 - .../how-to-run-a-workflow.md | 16 +- .../code-analysis/quality-rules/ca2100.md | 15 +- .../how-to-guides/load-data-ml-net.md | 2 + docs/machine-learning/resources/transforms.md | 6 +- .../tutorials/github-issue-classification.md | 51 +- .../csharp/Data/issues_test.tsv | 2843 +-- .../csharp/Data/issues_train.tsv | 16014 ++++++++-------- .../cs/makefile | 4 - .../cs/service.cs | 113 - .../cfx_wf_gettingstarted/cs/extrasnippets.cs | 19 +- .../cfx_wf_gettingstarted/cs/program.cs | 60 +- .../cfx_wf_gettingstarted/cs/project.csproj | 1 + .../cs/Project.csproj | 16 + .../cs/makefile | 4 - .../cs/program.cs | 189 +- .../cs/Project.csproj | 12 + .../trustedsubsystemsresource/cs/makefile | 4 - .../trustedsubsystemsresource/cs/source.cs | 19 - .../wf_svchost_idle_persist/cs/Project.csproj | 16 + .../wf_svchost_idle_persist/cs/makefile | 4 - .../wf_svchost_idle_persist/cs/source.cs | 37 +- .../vb/makefile | 4 - .../vb/service.vb | 117 - 32 files changed, 9819 insertions(+), 10489 deletions(-) delete mode 100644 docs/framework/wcf/feature-details/how-to-use-a-custom-user-name-and-password-validator.md delete mode 100644 docs/framework/wcf/samples/user-name-password-validator.md delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/makefile delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/service.cs create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/cfx_workflowapplicationexample/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/cfx_workflowapplicationexample/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystemsresource/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystemsresource/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/wf_svchost_idle_persist/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/wf_svchost_idle_persist/cs/makefile delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/makefile delete mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/service.vb diff --git a/.openpublishing.redirection.framework.json b/.openpublishing.redirection.framework.json index 21393c1052cda..c37908bfba58c 100644 --- a/.openpublishing.redirection.framework.json +++ b/.openpublishing.redirection.framework.json @@ -2532,6 +2532,10 @@ "redirect_url": "/previous-versions/dotnet/framework/wcf/feature-details/service-cert-validation-differences", "redirect_document_id": false }, + { + "source_path_from_root": "/docs/framework/wcf/feature-details/how-to-use-a-custom-user-name-and-password-validator.md", + "redirect_url": "/previous-versions/dotnet/framework/wcf/feature-details/how-to-use-custom-user-name-password-validator" + }, { "source_path_from_root": "/docs/framework/wcf/feature-details/how-to-create-a-workflow-service-that-calls-another-workflow-service.md", "redirect_url": "/previous-versions/dotnet/netframework-4.0/ff729672(v=vs.100)" @@ -2649,6 +2653,10 @@ "source_path_from_root": "/docs/framework/wcf/samples/usage-of-serialization-binder.md", "redirect_url": "/dotnet/framework/wcf/samples/" }, + { + "source_path_from_root": "/docs/framework/wcf/samples/user-name-password-validator.md", + "redirect_url": "/previous-versions/dotnet/framework/wcf/samples/user-name-password-validator" + }, { "source_path_from_root": "/docs/framework/wcf/samples/web-extensibility.md", "redirect_url": "/previous-versions/dotnet/netframework-4.0/ee818234(v%3dvs.100)" diff --git a/docs/ai/how-to/snippets/semantic-kernel/IdentityExamples.cs b/docs/ai/how-to/snippets/semantic-kernel/IdentityExamples.cs index a0bc53deabf9d..d3425a306fe80 100644 --- a/docs/ai/how-to/snippets/semantic-kernel/IdentityExamples.cs +++ b/docs/ai/how-to/snippets/semantic-kernel/IdentityExamples.cs @@ -9,7 +9,7 @@ using Microsoft.SemanticKernel.Plugins.Memory; using StackExchange.Redis; -// Supress warning about AzureAISearchMemoryStore still being in evaluation +// Suppress warning about AzureAISearchMemoryStore still being in evaluation #pragma warning disable SKEXP0020 // Suppress warning about MemoryStore still being in evaluation @@ -137,7 +137,7 @@ static async Task RedisKeyVaultExample() // // User secrets let you provide connection strings when testing locally - // For more info see: https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets + // For more info see: https://learn.microsoft.com/aspnet/core/security/app-secrets IConfigurationRoot config = new ConfigurationBuilder() .AddUserSecrets() .AddAzureKeyVault(new Uri("{vaultURI}"), credentials) diff --git a/docs/framework/wcf/feature-details/authentication-in-wcf.md b/docs/framework/wcf/feature-details/authentication-in-wcf.md index 752e74b4ed103..4327623991f94 100644 --- a/docs/framework/wcf/feature-details/authentication-in-wcf.md +++ b/docs/framework/wcf/feature-details/authentication-in-wcf.md @@ -2,40 +2,37 @@ title: "Authentication in WCF" description: Learn about several mechanisms in WCF that provide authentication, such as Windows authentication, X.509 certificates, and user name and password. ms.date: "03/30/2017" -helpviewer_keywords: +helpviewer_keywords: - "authentication [WCF]" - "security [WCF], authentication" ms.assetid: 9254d873-843d-4c6e-bea4-8184ac3e44f4 --- # Authentication in WCF -The following topics show a number of different mechanisms in Windows Communication Foundation (WCF) that provide authentication, for example, Windows authentication, X.509 certificates, and user name and passwords. - -## In This Section - - [How to: Use the ASP.NET Membership Provider](how-to-use-the-aspnet-membership-provider.md) - ASP.NET features include a membership and role provider, a database to store user name/password pairs for authentication, and user roles for authorization. This topic explains how WCF services can use the same database to authenticate and authorize users. - - [How to: Use a Custom User Name and Password Validator](how-to-use-a-custom-user-name-and-password-validator.md) - Demonstrates how to integrate a custom user name/password validator. - - [Service Identity and Authentication](service-identity-and-authentication.md) - As an extra safeguard, a client can authenticate the service by specifying the expected *identity* of the service. If the expected identity and the identity returned by the service do not match, authentication fails. - - [Security Negotiation and Timeouts](security-negotiation-and-timeouts.md) - Describes how to use the property in the class. - - [Debugging Windows Authentication Errors](debugging-windows-authentication-errors.md) - Focuses on common problems encountered when using Windows authentication. - -## Reference - - - -## Related Sections - - [Common Security Scenarios](common-security-scenarios.md) - +The following topics show a number of different mechanisms in Windows Communication Foundation (WCF) that provide authentication, for example, Windows authentication, X.509 certificates, and user name and passwords. + +## In This Section + + [How to: Use the ASP.NET Membership Provider](how-to-use-the-aspnet-membership-provider.md) + ASP.NET features include a membership and role provider, a database to store user name/password pairs for authentication, and user roles for authorization. This topic explains how WCF services can use the same database to authenticate and authorize users. + + [Service Identity and Authentication](service-identity-and-authentication.md) + As an extra safeguard, a client can authenticate the service by specifying the expected *identity* of the service. If the expected identity and the identity returned by the service do not match, authentication fails. + + [Security Negotiation and Timeouts](security-negotiation-and-timeouts.md) + Describes how to use the property in the class. + + [Debugging Windows Authentication Errors](debugging-windows-authentication-errors.md) + Focuses on common problems encountered when using Windows authentication. + +## Reference + + + +## Related Sections + + [Common Security Scenarios](common-security-scenarios.md) + ## See also - [Security Overview](security-overview.md) diff --git a/docs/framework/wcf/feature-details/how-to-use-a-custom-user-name-and-password-validator.md b/docs/framework/wcf/feature-details/how-to-use-a-custom-user-name-and-password-validator.md deleted file mode 100644 index ded565213edad..0000000000000 --- a/docs/framework/wcf/feature-details/how-to-use-a-custom-user-name-and-password-validator.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "How to: Use a Custom User Name and Password Validator" -description: Learn how to incorporate a custom password validator for WFC applications in place of the default Windows user name and password validation. -ms.date: "03/30/2017" -dev_langs: - - "csharp" - - "vb" -helpviewer_keywords: - - "WCF, username and password" -ms.assetid: 8e08b74b-fa44-4018-b63d-0d0805f85e3f ---- -# How to: Use a Custom User Name and Password Validator - -By default, when a user name and password is used for authentication, Windows Communication Foundation (WCF) uses Windows to validate the user name and password. However, WCF allows for custom user name and password authentication schemes, also known as *validators*. To incorporate a custom user name and password validator, create a class that derives from and then configure it. - -For a sample application, see [User Name Password Validator](../samples/user-name-password-validator.md). - -### To create a custom user name and password validator - -1. Create a class that derives from . - - [!code-csharp[C_CustomUsernameAndPasswordValidator#3](~/samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/service.cs#3)] - [!code-vb[C_CustomUsernameAndPasswordValidator#3](~/samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/service.vb#3)] - -2. Implement the custom authentication scheme by overriding the method. - - Do not use the code in the following example that overrides the method in a production environment. Replace the code with your custom user name and password validation scheme, which might involve retrieving user name and password pairs from a database. - - To return authentication errors back to the client, throw a in the method. - - [!code-csharp[C_CustomUsernameAndPasswordValidator#4](../../../../samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/service.cs#4)] - [!code-vb[C_CustomUsernameAndPasswordValidator#4](../../../../samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/service.vb#4)] - -### To configure a service to use a custom user name and password validator - -1. Configure a binding that uses message security over any transport or transport-level security over HTTP(S). - - When using message security, add one of the system-provided bindings, such as a [\](../../configure-apps/file-schema/wcf/wshttpbinding.md), or a [\](../../configure-apps/file-schema/wcf/custombinding.md) that supports message security and the `UserName` credential type. - - When using transport-level security over HTTP(S), add either the [\](../../configure-apps/file-schema/wcf/wshttpbinding.md) or [\](../../configure-apps/file-schema/wcf/basichttpbinding.md), a [\](../../configure-apps/file-schema/wcf/nettcpbinding.md) or a [\](../../configure-apps/file-schema/wcf/custombinding.md) that uses HTTP(S) and the `Basic` authentication scheme. - - > [!NOTE] - > When using .NET Framework 3.5 or later versions, you can use a custom username and password validator with message and transport security. With WinFX, a custom username and password validator can only be used with message security. - - > [!TIP] - > For more information on using \ in this context, see [\](../../configure-apps/file-schema/wcf/security-of-nettcpbinding.md). - - 1. In the configuration file, under the [\](../../configure-apps/file-schema/wcf/system-servicemodel.md) element, add a [\](../../configure-apps/file-schema/wcf/bindings.md) element. - - 2. Add a [\](../../configure-apps/file-schema/wcf/wshttpbinding.md) or [\](../../configure-apps/file-schema/wcf/basichttpbinding.md) element to the bindings section. For more information about creating an WCF binding element, see [How to: Specify a Service Binding in Configuration](../how-to-specify-a-service-binding-in-configuration.md). - - 3. Set the `mode` attribute of the [\](../../configure-apps/file-schema/wcf/security-of-wshttpbinding.md) or [\](../../configure-apps/file-schema/wcf/security-of-basichttpbinding.md) to `Message`, `Transport`, or `TransportWithMessageCredential`. - - 4. Set the `clientCredentialType` attribute of the [\](../../configure-apps/file-schema/wcf/message-of-wshttpbinding.md) or [\](../../configure-apps/file-schema/wcf/transport-of-wshttpbinding.md). - - When using message security, set the `clientCredentialType` attribute of the [\](../../configure-apps/file-schema/wcf/message-of-wshttpbinding.md) to `UserName`. - - When using transport-level security over HTTP(S), set the `clientCredentialType` attribute of the [\](../../configure-apps/file-schema/wcf/transport-of-wshttpbinding.md) or [\](../../configure-apps/file-schema/wcf/transport-of-basichttpbinding.md) to `Basic`. - - > [!NOTE] - > When a WCF service is hosted in Internet Information Services (IIS) using transport-level security and the property is set to , the custom authentication scheme uses a subset of Windows authentication. That is because in this scenario, IIS performs Windows authentication prior to WCF invoking the custom authenticator. - - For more information about creating an WCF binding element, see [How to: Specify a Service Binding in Configuration](../how-to-specify-a-service-binding-in-configuration.md). - - The following example shows the configuration code for the binding: - - ```xml - - - - - - - - - - - - ``` - -2. Configure a behavior that specifies that a custom user name and password validator is used to validate user name and password pairs for incoming security tokens. - - 1. As a child to the [\](../../configure-apps/file-schema/wcf/system-servicemodel.md) element, add a [\](../../configure-apps/file-schema/wcf/behaviors.md) element. - - 2. Add a [\](../../configure-apps/file-schema/wcf/servicebehaviors.md) to the [\](../../configure-apps/file-schema/wcf/behaviors.md) element. - - 3. Add a [\](../../configure-apps/file-schema/wcf/behavior-of-servicebehaviors.md) element and set the `name` attribute to an appropriate value. - - 4. Add a [\](../../configure-apps/file-schema/wcf/servicecredentials.md) to the [\](../../configure-apps/file-schema/wcf/behavior-of-servicebehaviors.md) element. - - 5. Add a [\](../../configure-apps/file-schema/wcf/usernameauthentication.md) to the [\](../../configure-apps/file-schema/wcf/servicecredentials.md). - - 6. Set the `userNamePasswordValidationMode` to `Custom`. - - > [!IMPORTANT] - > If the `userNamePasswordValidationMode` value is not set, WCF uses Windows authentication instead of the custom user name and password validator. - - 7. Set the `customUserNamePasswordValidatorType` to the type that represents your custom user name and password validator. - - The following example shows the `` fragment to this point: - - ```xml - - - - ``` - -## Example - -The following code example demonstrates how to create a custom user name and password validator. Do not use the code that overrides the method in a production environment. Replace the code with your custom user name and password validation scheme, which might involve retrieving user name and password pairs from a database. - -[!code-csharp[C_CustomUsernameAndPasswordValidator#1](~/samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/service.cs#1)] -[!code-vb[C_CustomUsernameAndPasswordValidator#1](~/samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/service.vb#1)] -[!code-csharp[C_CustomUsernameAndPasswordValidator#2](~/samples/snippets/csharp/VS_Snippets_CFX/c_customusernameandpasswordvalidator/cs/service.cs#2)] -[!code-vb[C_CustomUsernameAndPasswordValidator#2](~/samples/snippets/visualbasic/VS_Snippets_CFX/c_customusernameandpasswordvalidator/vb/service.vb#2)] - -## See also - -- -- [How to: Use the ASP.NET Membership Provider](how-to-use-the-aspnet-membership-provider.md) -- [Authentication](authentication-in-wcf.md) diff --git a/docs/framework/wcf/feature-details/migrating-wse-3-0-web-services-to-wcf.md b/docs/framework/wcf/feature-details/migrating-wse-3-0-web-services-to-wcf.md index 3dbd822b493b7..6cbca55e0f97b 100644 --- a/docs/framework/wcf/feature-details/migrating-wse-3-0-web-services-to-wcf.md +++ b/docs/framework/wcf/feature-details/migrating-wse-3-0-web-services-to-wcf.md @@ -6,128 +6,128 @@ ms.assetid: 7bc5fff7-a2b2-4dbc-86cc-ecf73653dcdc --- # Migrating WSE 3.0 Web Services to WCF -The benefits of migrating WSE 3.0 Web services to Windows Communication Foundation (WCF) include improved performance and the support of additional transports, additional security scenarios, and WS-* specifications. A Web service that is migrated from WSE 3.0 to WCF can experience up to a 200% to 400% performance improvement. For more information about the transports supported by WCF, see [Choosing a Transport](choosing-a-transport.md). For a list of the scenarios supported by WCF, see [Common Security Scenarios](common-security-scenarios.md). For a list of the specifications that are supported by WCF, see [Web Services Protocols Interoperability Guide](web-services-protocols-interoperability-guide.md). - - The following sections provide guidance on how to migrate a specific feature of a WSE 3.0 Web service to WCF. - -## General - - WSE 3.0 and WCF applications include wire-level interoperability and a common set of terminology. WSE 3.0 and WCF applications are wire-level interoperable based on the set of WS-* specifications that they both support. When a WSE 3.0 or WCF application is developed there is a common set of terminology, such as the names of the turnkey security assertions in WSE and the authentication modes. - - Although there are many similar aspects between the WCF and ASP.NET or WSE 3.0 programming models, they are different. For details about the WCF programming model, see [Basic Programming Lifecycle](../basic-programming-lifecycle.md). - +The benefits of migrating WSE 3.0 Web services to Windows Communication Foundation (WCF) include improved performance and the support of additional transports, additional security scenarios, and WS-* specifications. A Web service that is migrated from WSE 3.0 to WCF can experience up to a 200% to 400% performance improvement. For more information about the transports supported by WCF, see [Choosing a Transport](choosing-a-transport.md). For a list of the scenarios supported by WCF, see [Common Security Scenarios](common-security-scenarios.md). For a list of the specifications that are supported by WCF, see [Web Services Protocols Interoperability Guide](web-services-protocols-interoperability-guide.md). + + The following sections provide guidance on how to migrate a specific feature of a WSE 3.0 Web service to WCF. + +## General + + WSE 3.0 and WCF applications include wire-level interoperability and a common set of terminology. WSE 3.0 and WCF applications are wire-level interoperable based on the set of WS-* specifications that they both support. When a WSE 3.0 or WCF application is developed there is a common set of terminology, such as the names of the turnkey security assertions in WSE and the authentication modes. + + Although there are many similar aspects between the WCF and ASP.NET or WSE 3.0 programming models, they are different. For details about the WCF programming model, see [Basic Programming Lifecycle](../basic-programming-lifecycle.md). + > [!NOTE] -> To migrate a WSE Web service to WCF the [ServiceModel Metadata Utility Tool (Svcutil.exe)](../servicemodel-metadata-utility-tool-svcutil-exe.md) tool can be used to generate a client. That client however contains interfaces and classes that can be used as a starting point for a WCF service too. The interfaces that are generated have the attribute applied to the members of the contract with the property set to `*`. When a WSE client calls a Web service with this setting, the following exception is thrown: **Web.Services3.ResponseProcessingException: WSE910: An error happened during the processing of a response message, and you can find the error in the inner exception**. To mitigate this, set the property of the attribute to a non-`null` value, such as `http://Microsoft.WCF.Documentation/ResponseToOCAMethod`. - -## Security - -### WSE 3.0 Web services that are secured using a policy file - - WCF services can use a configuration file to secure a service and that mechanism is similar to a WSE 3.0 policy file. In WSE 3.0 when securing a Web service using a policy file, you use either a turnkey security assertion or a custom policy assertion. The turnkey security assertions map closely to the authentication mode of a WCF security binding element. Not only are the WCF authentication modes and WSE 3.0 turnkey security assertions named the same or similarly, they secure the messages using the same credential types. For instance, the `usernameForCertificate` turnkey security assertion in WSE 3.0 maps to the `UsernameForCertificate` authentication mode in WCF. The following code examples demonstrate how a minimal policy that uses the `usernameForCertificate` turnkey security assertion in WSE 3.0 maps to a `UsernameForCertificate` authentication mode in WCF in a custom binding. - - **WSE 3.0** - -```xml - - - - - -``` - - **WCF** - -```xml - - +> To migrate a WSE Web service to WCF the [ServiceModel Metadata Utility Tool (Svcutil.exe)](../servicemodel-metadata-utility-tool-svcutil-exe.md) tool can be used to generate a client. That client however contains interfaces and classes that can be used as a starting point for a WCF service too. The interfaces that are generated have the attribute applied to the members of the contract with the property set to `*`. When a WSE client calls a Web service with this setting, the following exception is thrown: **Web.Services3.ResponseProcessingException: WSE910: An error happened during the processing of a response message, and you can find the error in the inner exception**. To mitigate this, set the property of the attribute to a non-`null` value, such as `http://Microsoft.WCF.Documentation/ResponseToOCAMethod`. + +## Security + +### WSE 3.0 Web services that are secured using a policy file + + WCF services can use a configuration file to secure a service and that mechanism is similar to a WSE 3.0 policy file. In WSE 3.0 when securing a Web service using a policy file, you use either a turnkey security assertion or a custom policy assertion. The turnkey security assertions map closely to the authentication mode of a WCF security binding element. Not only are the WCF authentication modes and WSE 3.0 turnkey security assertions named the same or similarly, they secure the messages using the same credential types. For instance, the `usernameForCertificate` turnkey security assertion in WSE 3.0 maps to the `UsernameForCertificate` authentication mode in WCF. The following code examples demonstrate how a minimal policy that uses the `usernameForCertificate` turnkey security assertion in WSE 3.0 maps to a `UsernameForCertificate` authentication mode in WCF in a custom binding. + + **WSE 3.0** + +```xml + + + + + +``` + + **WCF** + +```xml + + - - -``` - - To migrate the security settings of a WSE 3.0 Web service that are specified in a policy file to WCF, a custom binding must be created in a configuration file and the turnkey security assertion must be set to its equivalent authentication mode. Additionally, the custom binding must be configured to use the August 2004 WS-Addressing specification when WSE 3.0 clients communicate with the service. When the migrated WCF service does not require communication with WSE 3.0 clients and must only maintain security parity, consider using the WCF system-defined bindings with appropriate security settings instead of creating a custom binding. - - The following table lists the mapping between a WSE 3.0 policy file and the equivalent custom binding in WCF. - -|WSE 3.0 Turnkey Security Assertion|WCF custom binding configuration| -|----------------------------------------|--------------------------------------| -|\|` `| -|\|` `| -|\|` `| -|\|` `| -|\|` `| -|\|` `| - - For more information about creating custom bindings in WCF, see [Custom Bindings](../extending/custom-bindings.md). - -### WSE 3.0 Web services that are secured using application code - - Whether WSE 3.0 or WCF is used, the security requirements can be specified in application code instead of in configuration. In WSE 3.0, this is accomplished by creating a class that derives from the `Policy` class and then by adding the requirements by calling the `Add` method. For more details about specifying the security requirements in code, see [How to: Secure a Web Service Without Using a Policy File](/previous-versions/dotnet/netframework-2.0/aa528763(v=msdn.10)). In WCF, to specify security requirements in code, create an instance of the class and add an instance of a to the . The security assertion requirements are set using the static authentication mode helper methods of the class. For more details about specifying security requirements in code using WCF, see [How to: Create a Custom Binding Using the SecurityBindingElement](how-to-create-a-custom-binding-using-the-securitybindingelement.md) and [How to: Create a SecurityBindingElement for a Specified Authentication Mode](how-to-create-a-securitybindingelement-for-a-specified-authentication-mode.md). - -### WSE 3.0 Custom Policy Assertion - - In WSE 3.0 there are two types of custom policy assertions: those that secure a SOAP message and those that do not secure a SOAP message. Policy assertions that secure SOAP messages derive from WSE 3.0 `SecurityPolicyAssertion` class and the conceptual equivalent in WCF is the class. - - An important point to note is that the WSE 3.0 turnkey security assertions are a subset of the WCF authentication modes. If you have created a custom policy assertion in WSE 3.0, there may be an equivalent WCF authentication mode. For example, WSE 3.0 does not provide a CertificateOverTransport security assertion that is the equivalent to `UsernameOverTransport` turnkey security assertion, but uses an X.509 certificate for client authentication purposes. If you have defined your own custom policy assertion for this scenario, WCF makes the migration straightforward. WCF defines an authentication mode for this scenario, so you can take advantage of the static authentication mode helper methods to configure a WCF. - - When there is not a WCF authentication mode that is equivalent to a custom policy assertion that secures SOAP messages, derive a class from , or WCF classes and specify the equivalent binding element. For more details, see [How to: Create a Custom Binding Using the SecurityBindingElement](how-to-create-a-custom-binding-using-the-securitybindingelement.md). - - To convert a custom policy assertion that does not secure a SOAP message, see [Filtering](filtering.md) and the sample [Custom Message Interceptor](../samples/custom-message-interceptor.md). - -### WSE 3.0 Custom Security Token - - The WCF programming model for creating a custom token is different than WSE 3.0. For details about creating a custom token in WSE, see [Creating Custom Security Tokens](/previous-versions/dotnet/netframework-2.0/aa529304(v=msdn.10)). For details about creating a custom token in WCF, see [How to: Create a Custom Token](../extending/how-to-create-a-custom-token.md). - -### WSE 3.0 Custom Token Manager - - The programming model for creating a custom token manager is different in WCF than WSE 3.0. For details about how to create a custom token manager and the other components that are required for a custom security token, see [How to: Create a Custom Token](../extending/how-to-create-a-custom-token.md). - + messageProtectionOrder="SignBeforeEncrypt" + requireDerivedKeys="true"/> + + +``` + + To migrate the security settings of a WSE 3.0 Web service that are specified in a policy file to WCF, a custom binding must be created in a configuration file and the turnkey security assertion must be set to its equivalent authentication mode. Additionally, the custom binding must be configured to use the August 2004 WS-Addressing specification when WSE 3.0 clients communicate with the service. When the migrated WCF service does not require communication with WSE 3.0 clients and must only maintain security parity, consider using the WCF system-defined bindings with appropriate security settings instead of creating a custom binding. + + The following table lists the mapping between a WSE 3.0 policy file and the equivalent custom binding in WCF. + +|WSE 3.0 Turnkey Security Assertion|WCF custom binding configuration| +|----------------------------------------|--------------------------------------| +|\|` `| +|\|` `| +|\|` `| +|\|` `| +|\|` `| +|\|` `| + + For more information about creating custom bindings in WCF, see [Custom Bindings](../extending/custom-bindings.md). + +### WSE 3.0 Web services that are secured using application code + + Whether WSE 3.0 or WCF is used, the security requirements can be specified in application code instead of in configuration. In WSE 3.0, this is accomplished by creating a class that derives from the `Policy` class and then by adding the requirements by calling the `Add` method. For more details about specifying the security requirements in code, see [How to: Secure a Web Service Without Using a Policy File](/previous-versions/dotnet/netframework-2.0/aa528763(v=msdn.10)). In WCF, to specify security requirements in code, create an instance of the class and add an instance of a to the . The security assertion requirements are set using the static authentication mode helper methods of the class. For more details about specifying security requirements in code using WCF, see [How to: Create a Custom Binding Using the SecurityBindingElement](how-to-create-a-custom-binding-using-the-securitybindingelement.md) and [How to: Create a SecurityBindingElement for a Specified Authentication Mode](how-to-create-a-securitybindingelement-for-a-specified-authentication-mode.md). + +### WSE 3.0 Custom Policy Assertion + + In WSE 3.0 there are two types of custom policy assertions: those that secure a SOAP message and those that do not secure a SOAP message. Policy assertions that secure SOAP messages derive from WSE 3.0 `SecurityPolicyAssertion` class and the conceptual equivalent in WCF is the class. + + An important point to note is that the WSE 3.0 turnkey security assertions are a subset of the WCF authentication modes. If you have created a custom policy assertion in WSE 3.0, there may be an equivalent WCF authentication mode. For example, WSE 3.0 does not provide a CertificateOverTransport security assertion that is the equivalent to `UsernameOverTransport` turnkey security assertion, but uses an X.509 certificate for client authentication purposes. If you have defined your own custom policy assertion for this scenario, WCF makes the migration straightforward. WCF defines an authentication mode for this scenario, so you can take advantage of the static authentication mode helper methods to configure a WCF. + + When there is not a WCF authentication mode that is equivalent to a custom policy assertion that secures SOAP messages, derive a class from , or WCF classes and specify the equivalent binding element. For more details, see [How to: Create a Custom Binding Using the SecurityBindingElement](how-to-create-a-custom-binding-using-the-securitybindingelement.md). + + To convert a custom policy assertion that does not secure a SOAP message, see [Filtering](filtering.md) and the sample [Custom Message Interceptor](../samples/custom-message-interceptor.md). + +### WSE 3.0 Custom Security Token + + The WCF programming model for creating a custom token is different than WSE 3.0. For details about creating a custom token in WSE, see [Creating Custom Security Tokens](/previous-versions/dotnet/netframework-2.0/aa529304(v=msdn.10)). For details about creating a custom token in WCF, see [How to: Create a Custom Token](../extending/how-to-create-a-custom-token.md). + +### WSE 3.0 Custom Token Manager + + The programming model for creating a custom token manager is different in WCF than WSE 3.0. For details about how to create a custom token manager and the other components that are required for a custom security token, see [How to: Create a Custom Token](../extending/how-to-create-a-custom-token.md). + > [!NOTE] -> If you have created a custom `UsernameToken` security token manager, WCF provides an easier mechanism to specify the authentication logic than creating a custom security token manager. For more details, see [How to: Use a Custom User Name and Password Validator](how-to-use-a-custom-user-name-and-password-validator.md). - -### WSE 3.0 Web services that use MTOM encoded SOAP messages - - Like a WSE 3 application, a WCF application can specify the MTOM message encoding in configuration. To migrate this setting, add the [\](../../configure-apps/file-schema/wcf/mtommessageencoding.md) to the binding for the service. The following code example demonstrates how MTOM encoding is specified in WSE 3.0 for a service that is equivalent in WCF. - - **WSE 3.0** - -```xml - - - -``` - - **WCF** - -```xml - - - - - -``` - -## Messaging - -### WSE 3.0 Applications that use the WSE Messaging API - - When the WSE Messaging API is used to gain direct access to the XML that is communicated between the client and Web service, the application can be converted to use "Plain Old XML" (POX). For more details about POX, see [Interoperability with POX Applications](interoperability-with-pox-applications.md). For more details about the WSE Messaging API, see [Sending and Receiving SOAP Messages Using WSE Messaging API](/previous-versions/dotnet/netframework-2.0/aa529293(v=msdn.10)). - -## Transports - -### TCP - - By default, WSE 3.0 clients and Web services that send SOAP messages using the TCP transport do not interoperate with WCF clients and Web services. This incompatibility is due to differences in the framing used in the TCP protocol and for performance reasons. However, a WCF sample details how to implement a custom TCP session that interoperates with WSE 3.0. For details about this sample, see [Transport: WSE 3.0 TCP Interoperability](../samples/transport-wse-3-0-tcp-interoperability.md). - - To specify that a WCF application uses the TCP transport, use the [\](../../configure-apps/file-schema/wcf/nettcpbinding.md). - -### Custom Transport - - The equivalent of a WSE 3.0 custom transport in WCF is a channel extension. For details about creating a channel extension, see [Extending the Channel Layer](../extending/extending-the-channel-layer.md). - +> If you have created a custom `UsernameToken` security token manager, WCF provides an easier mechanism to specify the authentication logic than creating a custom security token manager. For more details, see [How to: Use a Custom User Name and Password Validator](/previous-versions/dotnet/framework/wcf/feature-details/how-to-use-custom-user-name-password-validator). + +### WSE 3.0 Web services that use MTOM encoded SOAP messages + + Like a WSE 3 application, a WCF application can specify the MTOM message encoding in configuration. To migrate this setting, add the [\](../../configure-apps/file-schema/wcf/mtommessageencoding.md) to the binding for the service. The following code example demonstrates how MTOM encoding is specified in WSE 3.0 for a service that is equivalent in WCF. + + **WSE 3.0** + +```xml + + + +``` + + **WCF** + +```xml + + + + + +``` + +## Messaging + +### WSE 3.0 Applications that use the WSE Messaging API + + When the WSE Messaging API is used to gain direct access to the XML that is communicated between the client and Web service, the application can be converted to use "Plain Old XML" (POX). For more details about POX, see [Interoperability with POX Applications](interoperability-with-pox-applications.md). For more details about the WSE Messaging API, see [Sending and Receiving SOAP Messages Using WSE Messaging API](/previous-versions/dotnet/netframework-2.0/aa529293(v=msdn.10)). + +## Transports + +### TCP + + By default, WSE 3.0 clients and Web services that send SOAP messages using the TCP transport do not interoperate with WCF clients and Web services. This incompatibility is due to differences in the framing used in the TCP protocol and for performance reasons. However, a WCF sample details how to implement a custom TCP session that interoperates with WSE 3.0. For details about this sample, see [Transport: WSE 3.0 TCP Interoperability](../samples/transport-wse-3-0-tcp-interoperability.md). + + To specify that a WCF application uses the TCP transport, use the [\](../../configure-apps/file-schema/wcf/nettcpbinding.md). + +### Custom Transport + + The equivalent of a WSE 3.0 custom transport in WCF is a channel extension. For details about creating a channel extension, see [Extending the Channel Layer](../extending/extending-the-channel-layer.md). + ## See also - [Basic Programming Lifecycle](../basic-programming-lifecycle.md) diff --git a/docs/framework/wcf/feature-details/toc.yml b/docs/framework/wcf/feature-details/toc.yml index bb8714870962c..8fc85cd1cfc44 100644 --- a/docs/framework/wcf/feature-details/toc.yml +++ b/docs/framework/wcf/feature-details/toc.yml @@ -437,8 +437,6 @@ items: items: - name: "How to: Use the ASP.NET Membership Provider" href: how-to-use-the-aspnet-membership-provider.md - - name: "How to: Use a Custom User Name and Password Validator" - href: how-to-use-a-custom-user-name-and-password-validator.md - name: "How to: Use Multiple Security Tokens of the Same Type" href: how-to-use-multiple-security-tokens-of-the-same-type.md - name: Service Identity and Authentication diff --git a/docs/framework/wcf/samples/security-extensibility.md b/docs/framework/wcf/samples/security-extensibility.md index ee124625a33be..8956a92dea2fb 100644 --- a/docs/framework/wcf/samples/security-extensibility.md +++ b/docs/framework/wcf/samples/security-extensibility.md @@ -25,9 +25,6 @@ Demonstrates how to implement a custom token authenticator. [Token Provider](token-provider.md) Demonstrates how to implement a custom token provider. - [User Name Password Validator](user-name-password-validator.md) -Demonstrates how to implement a custom UserNamePassword Validator. - [X.509 Certificate Validator](x-509-certificate-validator.md) Demonstrates how to implement a custom X.509 Certificate Validator. diff --git a/docs/framework/wcf/samples/toc.yml b/docs/framework/wcf/samples/toc.yml index ca45c62d53b7c..f1fc11e468da5 100644 --- a/docs/framework/wcf/samples/toc.yml +++ b/docs/framework/wcf/samples/toc.yml @@ -438,8 +438,6 @@ items: href: token-authenticator.md - name: Token Provider href: token-provider.md - - name: User Name Password Validator - href: user-name-password-validator.md - name: X.509 Certificate Validator href: x-509-certificate-validator.md - name: Authorization Policy diff --git a/docs/framework/wcf/samples/user-name-password-validator.md b/docs/framework/wcf/samples/user-name-password-validator.md deleted file mode 100644 index e2732598e2e2b..0000000000000 --- a/docs/framework/wcf/samples/user-name-password-validator.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -description: "Learn more about: User Name Password Validator" -title: "User Name Password Validator" -ms.date: "03/30/2017" -ms.assetid: 42f03841-286b-42d8-ba58-18c75422bc8e ---- -# User Name Password Validator - -The [UserNamePasswordValidator sample](https://github.com/dotnet/samples/tree/main/framework/wcf) demonstrates how to implement a custom UserNamePassword Validator. This is useful in cases where none of the built-in UserNamePassword Validation modes is appropriate for the requirements of the application; for example, when username/password pairs are stored in some external store, such as a database. This sample shows a service that has a custom validator that checks for two particular username/password pairs. The client uses such a username/password pair to authenticate to the service. - -> [!NOTE] -> Because anyone can construct a Username credential that uses the username/password pairs that the custom validator accepts, the service is less secure than the default behavior provided by the standard UserNamePassword Validator. The standard UserNamePassword Validator attempts to map the provided username/password pair to a Windows account and fails authentication if this mapping fails. The custom UserNamePassword Validator in this sample MUST NOT be used in production code, it is for illustration purposes only. - -In summary this sample demonstrates how: - -- The client can be authenticated using a Username Token. - -- The server validates the client credentials against a custom UserNamePasswordValidator and how to propagate custom faults from the username and password validation logic to the client. - -- The server is authenticated using the server's X.509 certificate. - -The service exposes a single endpoint for communicating with the service, defined using the configuration file, App.config. The endpoint consists of an address, a binding, and a contract. The binding is configured with a standard `wsHttpBinding` that defaults to using WS-Security and username authentication. The service behavior specifies the `Custom` mode for validating client username/password pairs along with the type of the validator class. The behavior also specifies the server certificate using the `serviceCertificate` element. The server certificate has to contain the same value for the `SubjectName` as the `findValue` in the [\](../../configure-apps/file-schema/wcf/servicecertificate-of-servicecredentials.md). - -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -The client endpoint configuration consists of a configuration name, an absolute address for the service endpoint, the binding, and the contract. The client binding is configured with the appropriate mode and message `clientCredentialType`. - -```xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -The client implementation prompts the user to enter a username and password. - -```csharp -// Get the username and password -Console.WriteLine("Username authentication required."); -Console.WriteLine("Provide a username."); -Console.WriteLine(" Enter username: (test1)"); -string username = Console.ReadLine(); -Console.WriteLine(" Enter password:"); -string password = ""; -ConsoleKeyInfo info = Console.ReadKey(true); -while (info.Key != ConsoleKey.Enter) -{ - if (info.Key != ConsoleKey.Backspace) - { - if (info.KeyChar != '\0') - { - password += info.KeyChar; - } - info = Console.ReadKey(true); - } - else if (info.Key == ConsoleKey.Backspace) - { - if (password != "") - { - password = password.Substring(0, password.Length - 1); - } - info = Console.ReadKey(true); - } -} -for (int i = 0; i < password.Length; i++) -{ - Console.Write("*"); -} -Console.WriteLine(); -// Create a proxy with Certificate endpoint configuration -CalculatorProxy proxy = new CalculatorProxy("Username") -try -{ - proxy.ClientCredentials.Username.Username = username; - proxy.ClientCredentials.Username.Password = password; - // Call the Add service operation. - double value1 = 100.00D; - double value2 = 15.99D; - double result = proxy.Add(value1, value2); - Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result); - } - catch (Exception e) - { - Console.WriteLine("Call failed:"); - while (e != null) - { - Console.WriteLine("\t{0}", e.Message); - e = e.InnerException; - } - proxy.Abort(); - } -} -``` - -This sample uses a custom UserNamePasswordValidator to validate username/password pairs. The sample implements `CustomUserNamePasswordValidator`, derived from . See the documentation for for more information. This particular custom validator sample implements the `Validate` method to accept two particular username/password pairs as shown in the following code. - -```csharp -public class CustomUserNameValidator : UserNamePasswordValidator -{ - // This method validates users. It allows in two users, - // test1 and test2 with passwords 1tset and 2tset respectively. - // This code is for illustration purposes only and - // MUST NOT be used in a production environment because it - // is NOT secure. -public override void Validate(string userName, string password) - { - if (null == userName || null == password) - { - throw new ArgumentNullException(); - } - - if (!(userName == "test1" && password == "1tset") && !(userName == "test2" && password == "2tset")) - { - throw new FaultException("Unknown Username or Incorrect Password"); - } - } - } -``` - -Once the validator is implemented in service code, the service host must be informed about the validator instance to use. This is done using the following code. - -```csharp -serviceHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = UserNamePasswordValidationMode.Custom; -serviceHost.Credentials. UserNameAuthentication.CustomUserNamePasswordValidator = new CustomUserNamePasswordValidator(); -``` - -Or you can do the same thing in configuration as follows. - -```xml - - - - ... - - - - ... - - - - -``` - -When you run the sample, the operation requests and responses are displayed in the client console window. The client should successfully call all the methods. Press ENTER in the client window to shut down the client. - -## Setup Batch File - -The Setup.bat batch file included with this sample allows you to configure the server with relevant certificates to run a self-hosted application that requires server certificate-based security. This batch file must be modified to work across machines or to work in a non-self-hosted case. - -The following provides a brief overview of the different sections of the batch files so that they can be modified to run in the appropriate configuration. - -- Creating the server certificate: - - The following lines from the Setup.bat batch file create the server certificate to be used. The %SERVER_NAME% variable specifies the server name. Change this variable to specify your own server name. The default value is localhost. - - ```console - echo ************ - echo Server cert setup starting - echo %SERVER_NAME% - echo ************ - echo making server cert - echo ************ - makecert.exe -sr LocalMachine -ss MY -a sha1 -n CN=%SERVER_NAME% -sky exchange -pe - ``` - -- Installing the server certificate into client's trusted certificate store: - - The following lines in the Setup.bat batch file copy the server certificate into the client trusted people store. This step is required because certificates generated by Makecert.exe are not implicitly trusted by the client system. If you already have a certificate that is rooted in a client trusted root certificate—for example, a Microsoft issued certificate—this step of populating the client certificate store with the server certificate is not required. - - ```console - certmgr.exe -add -r LocalMachine -s My -c -n %SERVER_NAME% -r CurrentUser -s TrustedPeople - ``` - -#### To set up and build the sample - -1. To build the solution, follow the instructions in [Building the Windows Communication Foundation Samples](building-the-samples.md). - -2. To run the sample in a single- or cross-machine configuration, use the following instructions. - -#### To run the sample on the same machine - -1. Run Setup.bat from the sample install folder inside a Visual Studio command prompt. This installs all the certificates required for running the sample. - - > [!NOTE] - > The Setup.bat batch file is designed to be run from a Visual Studio Command Prompt. The PATH environment variable set within the Visual Studio Command Prompt points to the directory that contains executables required by the Setup.bat script. - -2. Launch Service.exe from service\bin. - -3. Launch Client.exe from \client\bin. Client activity is displayed on the client console application. - -4. If the client and service are not able to communicate, see [Troubleshooting Tips for WCF Samples](/previous-versions/dotnet/netframework-3.5/ms751511(v=vs.90)). - -#### To run the sample across machines - -1. Create a directory on the service machine for the service binaries. - -2. Copy the service program files the service directory on the service machine. Also copy the Setup.bat and Cleanup.bat files to the service machine. - -3. You need a server certificate with the subject name that contains the fully-qualified domain name of the machine. The configuration file for the server must be updated to reflect this new certificate name. - -4. Copy the server certificate into the CurrentUser-TrustedPeople store of the client. You need to do this only if the server certificate is not issued by a trusted issuer. - -5. In the App.config file on the service machine, change the value of the base address to specify a fully-qualified machine name instead of localhost. - -6. On the service machine, launch Service.exe from a command prompt window. - -7. Copy the client program files from the \client\bin\ folder, under the language-specific folder, to the client machine. - -8. In the Client.exe.config file on the client machine, change the address value of the endpoint to match the new address of your service. - -9. On the client machine, launch Client.exe from a command prompt window. - -10. If the client and service are not able to communicate, see [Troubleshooting Tips for WCF Samples](/previous-versions/dotnet/netframework-3.5/ms751511(v=vs.90)). - -#### To clean up after the sample - -1. Run Cleanup.bat in the samples folder once you have finished running the sample. This removes the server certificate from the certificate store. diff --git a/docs/framework/windows-workflow-foundation/how-to-run-a-workflow.md b/docs/framework/windows-workflow-foundation/how-to-run-a-workflow.md index ca02141c8b987..6a6470d01d583 100644 --- a/docs/framework/windows-workflow-foundation/how-to-run-a-workflow.md +++ b/docs/framework/windows-workflow-foundation/how-to-run-a-workflow.md @@ -13,13 +13,13 @@ This topic is a continuation of the Windows Workflow Foundation Getting Started > [!NOTE] > Each topic in the Getting Started tutorial depends on the previous topics. To complete this topic you must first complete [How to: Create an Activity](how-to-create-an-activity.md) and [How to: Create a Workflow](how-to-create-a-workflow.md). - -### To create the workflow host project - -1. Open the solution from the previous [How to: Create an Activity](how-to-create-an-activity.md) topic by using Visual Studio 2012. - -2. Right-click the **WF45GettingStartedTutorial** solution in **Solution Explorer** and select **Add**, **New Project**. - + +### To create the workflow host project + +1. Open the solution from the previous [How to: Create an Activity](how-to-create-an-activity.md) topic by using Visual Studio 2012. + +2. Right-click the **WF45GettingStartedTutorial** solution in **Solution Explorer** and select **Add**, **New Project**. + > [!TIP] > If the **Solution Explorer** window is not displayed, select **Solution Explorer** from the **View** menu. @@ -70,7 +70,7 @@ This topic is a continuation of the Windows Workflow Foundation Getting Started Replace the lines of code that use with the following basic hosting code. This sample hosting code demonstrates the basic steps for hosting and invoking a workflow, but does not yet contain the functionality to successfully run the workflow from this topic. In the following steps, this basic code is modified and additional features are added until the application is complete. > [!NOTE] - > Please replace `Workflow1` in these examples with `FlowchartNumberGuessWorkflow`, `SequentialNumberGuessWorkflow`, or `StateMachineNumberGuessWorkflow`, depending on which workflow you completed in the previous [How to: Create a Workflow](how-to-create-a-workflow.md) step. If you do not replace `Workflow1` then you will get build errors when you try and build or run the workflow. + > You must replace `Workflow1` in these examples with `FlowchartNumberGuessWorkflow`, `SequentialNumberGuessWorkflow`, or `StateMachineNumberGuessWorkflow`, depending on which workflow you completed in the previous [How to: Create a Workflow](how-to-create-a-workflow.md) step. If you do not replace `Workflow1` then you will get build errors when you try and build or run the workflow. [!code-csharp[CFX_WF_GettingStarted#4](~/samples/snippets/csharp/VS_Snippets_CFX/cfx_wf_gettingstarted/cs/extrasnippets.cs#4)] [!code-vb[CFX_WF_GettingStarted#4](~/samples/snippets/visualbasic/VS_Snippets_CFX/cfx_wf_gettingstarted/vb/extrasnippets.vb#4)] diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2100.md b/docs/fundamentals/code-analysis/quality-rules/ca2100.md index c4d1ddc016f20..3861e33b01eca 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca2100.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca2100.md @@ -9,8 +9,6 @@ f1_keywords: helpviewer_keywords: - CA2100 - ReviewSqlQueriesForSecurityVulnerabilities -author: gewarren -ms.author: gewarren dev_langs: - CSharp - VB @@ -27,28 +25,23 @@ dev_langs: ## Cause -A method sets the property by using a string that is built from a string argument to the method. +A method sets the property by using a string that's built from a string argument to the method. By default, this rule analyzes the entire codebase, but this is [configurable](#configure-code-to-analyze). ## Rule description -This rule assumes that any string, whose value can't be determined at compile time, may contain user input. A SQL command string that is built from user input is vulnerable to SQL injection attacks. In a SQL injection attack, a malicious user supplies input that alters the design of a query in an attempt to damage or gain unauthorized access to the underlying database. Typical techniques include injection of a single quotation mark or apostrophe, which is the SQL literal string delimiter; two dashes, which signifies a SQL comment; and a semicolon, which indicates that a new command follows. If user input must be part of the query, use one of the following, listed in order of effectiveness, to reduce the risk of attack. +This rule assumes that any string whose value can't be determined at compile time might contain user input. A SQL command string that's built from user input is vulnerable to SQL injection attacks. In a SQL injection attack, a malicious user supplies input that alters the design of a query in an attempt to damage or gain unauthorized access to the underlying database. Typical techniques include injection of a single quotation mark or apostrophe, which is the SQL literal string delimiter; two dashes, which signifies a SQL comment; and a semicolon, which indicates that a new command follows. If user input must be part of the query, use one of the following, listed in order of effectiveness, to reduce the risk of attack. - Use a stored procedure. - - Use a parameterized command string. - - Validate the user input for both type and content before you build the command string. The following .NET types implement the property or provide constructors that set the property by using a string argument. - and - - and - - and - - and In some cases, this rule might not determine a string's value at compile time, even though you can. In those cases, this rule produces false positives when using those strings as SQL commands. The following is an example of such a string. @@ -107,12 +100,14 @@ You can configure these options for just this rule, for all rules it applies to, ## Example -The following example shows a method, `UnsafeQuery`, that violates the rule and a method, `SaferQuery`, that satisfies the rule by using a parameterized command string. +The following example shows a method, `UnsafeQuery`, that violates the rule. It also shows a method, `SaferQuery`, that satisfies the rule by using a parameterized command string. :::code language="vb" source="snippets/vb/all-rules/ca2100-review-sql-queries-for-security-vulnerabilities_1.vb"::: :::code language="csharp" source="snippets/csharp/all-rules/ca2100.cs" id="snippet1"::: +[!INCLUDE [managed-identities](../../../framework/includes/managed-identities.md)] + ## See also - [Security Overview](../../../framework/data/adonet/security-overview.md) diff --git a/docs/machine-learning/how-to-guides/load-data-ml-net.md b/docs/machine-learning/how-to-guides/load-data-ml-net.md index 1dbf892d440d9..e2e2e0f850496 100644 --- a/docs/machine-learning/how-to-guides/load-data-ml-net.md +++ b/docs/machine-learning/how-to-guides/load-data-ml-net.md @@ -143,6 +143,8 @@ DatabaseLoader loader = mlContext.Data.CreateDatabaseLoader(); Define your connection string as well as the SQL command to be executed on the database and create a `DatabaseSource` instance. This sample uses a LocalDB SQL Server database with a file path. However, DatabaseLoader supports any other valid connection string for databases on-premises and in the cloud. +[!INCLUDE [managed-identities](../../framework/includes/managed-identities.md)] + ```csharp string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=;Database=;Integrated Security=True;Connect Timeout=30"; diff --git a/docs/machine-learning/resources/transforms.md b/docs/machine-learning/resources/transforms.md index cfae5d8bc0cad..36d038cdade01 100644 --- a/docs/machine-learning/resources/transforms.md +++ b/docs/machine-learning/resources/transforms.md @@ -8,9 +8,9 @@ ms.date: 09/14/2022 Data transformations are used to: -- prepare data for model training -- apply an imported model in TensorFlow or ONNX format -- post-process data after it has been passed through a model +- Prepare data for model training. +- Apply an imported model in TensorFlow or ONNX format. +- Post-process data after it has been passed through a model. The transformations in this guide return classes that implement the [IEstimator](xref:Microsoft.ML.IEstimator%601) interface. Data transformations can be chained together. Each transformation both expects and produces data of specific types and formats, which are specified in the linked reference documentation. diff --git a/docs/machine-learning/tutorials/github-issue-classification.md b/docs/machine-learning/tutorials/github-issue-classification.md index 818c30576e166..b9ca02b6587d1 100644 --- a/docs/machine-learning/tutorials/github-issue-classification.md +++ b/docs/machine-learning/tutorials/github-issue-classification.md @@ -25,8 +25,8 @@ You can find the source code for this tutorial at the [dotnet/samples](https://g ## Prerequisites * [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) with the ".NET Desktop Development" workload installed. -* The [GitHub issues tab separated file (issues_train.tsv)](https://raw.githubusercontent.com/dotnet/samples/main/machine-learning/tutorials/GitHubIssueClassification/Data/issues_train.tsv). -* The [GitHub issues test tab separated file (issues_test.tsv)](https://raw.githubusercontent.com/dotnet/samples/main/machine-learning/tutorials/GitHubIssueClassification/Data/issues_test.tsv). +* The [GitHub issues training tab-separated file (issues_train.tsv)](https://raw.githubusercontent.com/dotnet/samples/main/machine-learning/tutorials/GitHubIssueClassification/Data/issues_train.tsv). +* The [GitHub issues test tab-separated file (issues_test.tsv)](https://raw.githubusercontent.com/dotnet/samples/main/machine-learning/tutorials/GitHubIssueClassification/Data/issues_test.tsv). ## Create a console application @@ -83,26 +83,26 @@ Create some classes for your input data and predictions. Add a new class to your The *GitHubIssueData.cs* file opens in the code editor. Add the following `using` directive to the top of *GitHubIssueData.cs*: -[!code-csharp[AddUsings](./snippets/github-issue-classification/csharp/GitHubIssueData.cs#AddUsings)] + [!code-csharp[AddUsings](./snippets/github-issue-classification/csharp/GitHubIssueData.cs#AddUsings)] -Remove the existing class definition and add the following code, which has two classes `GitHubIssue` and `IssuePrediction`, to the *GitHubIssueData.cs* file: +1. Remove the existing class definition and add the following code to the *GitHubIssueData.cs* file. This code has two classes, `GitHubIssue` and `IssuePrediction`. -[!code-csharp[DeclareGlobalVariables](./snippets/github-issue-classification/csharp/GitHubIssueData.cs#DeclareTypes)] + [!code-csharp[DeclareGlobalVariables](./snippets/github-issue-classification/csharp/GitHubIssueData.cs#DeclareTypes)] -The `label` is the column you want to predict. The identified `Features` are the inputs you give the model to predict the Label. + The `label` is the column you want to predict. The identified `Features` are the inputs you give the model to predict the Label. -Use the [LoadColumnAttribute](xref:Microsoft.ML.Data.LoadColumnAttribute) to specify the indices of the source columns in the data set. + Use the [LoadColumnAttribute](xref:Microsoft.ML.Data.LoadColumnAttribute) to specify the indices of the source columns in the data set. -`GitHubIssue` is the input dataset class and has the following fields: + `GitHubIssue` is the input dataset class and has the following fields: -* the first column `ID` (GitHub Issue ID) -* the second column `Area` (the prediction for training) -* the third column `Title` (GitHub issue title) is the first `feature` used for predicting the `Area` -* the fourth column `Description` is the second `feature` used for predicting the `Area` + * The first column `ID` (GitHub Issue ID). + * The second column `Area` (the prediction for training). + * The third column `Title` (GitHub issue title) is the first `feature` used for predicting the `Area`. + * The fourth column `Description` is the second `feature` used for predicting the `Area`. -`IssuePrediction` is the class used for prediction after the model has been trained. It has a single `string` (`Area`) and a `PredictedLabel` `ColumnName` attribute. The `PredictedLabel` is used during prediction and evaluation. For evaluation, an input with training data, the predicted values, and the model are used. + `IssuePrediction` is the class used for prediction after the model has been trained. It has a single `string` (`Area`) and a `PredictedLabel` `ColumnName` attribute. The `PredictedLabel` is used during prediction and evaluation. For evaluation, an input with training data, the predicted values, and the model are used. -All ML.NET operations start in the [MLContext](xref:Microsoft.ML.MLContext) class. Initializing `mlContext` creates a new ML.NET environment that can be shared across the model creation workflow objects. It's similar, conceptually, to `DBContext` in `Entity Framework`. + All ML.NET operations start in the [MLContext](xref:Microsoft.ML.MLContext) class. Initializing `mlContext` creates a new ML.NET environment that can be shared across the model creation workflow objects. It's similar, conceptually, to `DBContext` in `Entity Framework`. ### Initialize variables @@ -189,7 +189,7 @@ IEstimator BuildAndTrainModel(IDataView trainingDataView, IEstimat ### About the classification task -Classification is a machine learning task that uses data to **determine** the category, type, or class of an item or row of data and is frequently one of the following types: +Classification is a machine learning task that uses data to determine the category, type, or class of an item or row of data and is frequently one of the following types: * Binary: either A or B. * Multiclass: multiple categories that can be predicted by using a single model. @@ -210,7 +210,7 @@ Fit the model to the `splitTrainSet` data and return the trained model by adding The `Fit()`method trains your model by transforming the dataset and applying the training. -The [PredictionEngine](xref:Microsoft.ML.PredictionEngine%602) is a convenience API, which allows you to pass in and then perform a prediction on a single instance of data. Add this as the next line in the `BuildAndTrainModel()` method: +The [PredictionEngine](xref:Microsoft.ML.PredictionEngine%602) is a convenience API that allows you to pass in and then perform a prediction on a single instance of data. Add this as the next line in the `BuildAndTrainModel()` method: [!code-csharp[CreatePredictionEngine1](./snippets/github-issue-classification/csharp/Program.cs#CreatePredictionEngine1)] @@ -220,11 +220,11 @@ Add a GitHub issue to test the trained model's prediction in the `Predict` metho [!code-csharp[CreateTestIssue1](./snippets/github-issue-classification/csharp/Program.cs#CreateTestIssue1)] -Use the [Predict()](xref:Microsoft.ML.PredictionEngine%602.Predict%2A) function makes a prediction on a single row of data: +Use the [Predict()](xref:Microsoft.ML.PredictionEngine%602.Predict%2A) function to make a prediction on a single row of data: [!code-csharp[Predict](./snippets/github-issue-classification/csharp/Program.cs#Predict)] -### Use the model: prediction results +### Use the model: Prediction results Display `GitHubIssue` and corresponding `Area` label prediction in order to share the results and act on them accordingly. Create a display for the results using the following code: @@ -271,11 +271,8 @@ Notice the use of the [Transform()](xref:Microsoft.ML.ITransformer.Transform%2A) The following metrics are evaluated for multiclass classification: * Micro Accuracy - Every sample-class pair contributes equally to the accuracy metric. You want Micro Accuracy to be as close to one as possible. - * Macro Accuracy - Every class contributes equally to the accuracy metric. Minority classes are given equal weight as the larger classes. You want Macro Accuracy to be as close to one as possible. - * Log-loss - see [Log Loss](../resources/glossary.md#log-loss). You want Log-loss to be as close to zero as possible. - * Log-loss reduction - Ranges from [-inf, 1.00], where 1.00 is perfect predictions and 0 indicates mean predictions. You want Log-loss reduction to be as close to one as possible. ### Display the metrics for model validation @@ -320,7 +317,7 @@ void PredictIssue() The `PredictIssue` method executes the following tasks: -* Loads the saved model +* Loads the saved model. * Creates a single issue of test data. * Predicts area based on test data. * Combines test data and predictions for reporting. @@ -338,7 +335,7 @@ As you did previously, create a `PredictionEngine` instance with the following c [!code-csharp[CreatePredictionEngine](./snippets/github-issue-classification/csharp/Program.cs#CreatePredictionEngine)] -The [PredictionEngine](xref:Microsoft.ML.PredictionEngine%602) is a convenience API, which allows you to perform a prediction on a single instance of data. [`PredictionEngine`](xref:Microsoft.ML.PredictionEngine%602) is not thread-safe. It's acceptable to use in single-threaded or prototype environments. For improved performance and thread safety in production environments, use the `PredictionEnginePool` service, which creates an [`ObjectPool`](xref:Microsoft.Extensions.ObjectPool.ObjectPool%601) of [`PredictionEngine`](xref:Microsoft.ML.PredictionEngine%602) objects for use throughout your application. See this guide on how to [use `PredictionEnginePool` in an ASP.NET Core Web API](../how-to-guides/serve-model-web-api-ml-net.md#register-predictionenginepool-for-use-in-the-application). +The [PredictionEngine](xref:Microsoft.ML.PredictionEngine%602) is a convenience API that allows you to perform a prediction on a single instance of data. [`PredictionEngine`](xref:Microsoft.ML.PredictionEngine%602) is not thread-safe. It's acceptable to use in single-threaded or prototype environments. For improved performance and thread safety in production environments, use the `PredictionEnginePool` service, which creates an [`ObjectPool`](xref:Microsoft.Extensions.ObjectPool.ObjectPool%601) of [`PredictionEngine`](xref:Microsoft.ML.PredictionEngine%602) objects for use throughout your application. See this guide on how to [use `PredictionEnginePool` in an ASP.NET Core Web API](../how-to-guides/serve-model-web-api-ml-net.md#register-predictionenginepool-for-use-in-the-application). > [!NOTE] > `PredictionEnginePool` service extension is currently in preview. @@ -355,7 +352,7 @@ Display `Area` in order to categorize the issue and act on it accordingly. Creat ## Results -Your results should be similar to the following. As the pipeline processes, it displays messages. You may see warnings, or processing messages. These messages have been removed from the following results for clarity. +Your results should be similar to the following. As the pipeline processes, it displays messages. You might see warnings, or processing messages. These messages have been removed from the following results for clarity. ```console =============== Single Prediction just-trained-model - Result: area-System.Net =============== @@ -370,11 +367,12 @@ Your results should be similar to the following. As the pipeline processes, it d =============== Single Prediction - Result: area-System.Data =============== ``` -Congratulations! You've now successfully built a machine learning model for classifying and predicting an Area label for a GitHub issue. You can find the source code for this tutorial at the [dotnet/samples](https://github.com/dotnet/samples/tree/main/machine-learning/tutorials/GitHubIssueClassification) repository. +Congratulations! You've now successfully built a machine-learning model for classifying and predicting an Area label for a GitHub issue. You can find the source code for this tutorial at the [dotnet/samples](https://github.com/dotnet/samples/tree/main/machine-learning/tutorials/GitHubIssueClassification) repository. ## Next steps In this tutorial, you learned how to: + > [!div class="checklist"] > > * Prepare your data @@ -384,6 +382,7 @@ In this tutorial, you learned how to: > * Predict with the trained model > * Deploy and Predict with a loaded model -Advance to the next tutorial to learn more +Advance to the next tutorial to learn more. + > [!div class="nextstepaction"] > [Taxi Fare Predictor](predict-prices.md) diff --git a/docs/machine-learning/tutorials/snippets/github-issue-classification/csharp/Data/issues_test.tsv b/docs/machine-learning/tutorials/snippets/github-issue-classification/csharp/Data/issues_test.tsv index 5331217e59edf..79f5bfc679d5a 100644 --- a/docs/machine-learning/tutorials/snippets/github-issue-classification/csharp/Data/issues_test.tsv +++ b/docs/machine-learning/tutorials/snippets/github-issue-classification/csharp/Data/issues_test.tsv @@ -1,46 +1,46 @@ ID Area Title Description 24597 area-System.Net HttpWebRequest Not Supported HTTP/1.0? ``` HttpRequest = (HttpWebRequest)WebRequest.CreateHttp(url); HttpRequest.Method = method; HttpRequest.ProtocolVersion = System.Net.HttpVersion.Version10; ``` Parameter 1.0 is specified, but is not valid Analysis of Using wireshark is still 1.1 -24598 area-System.Diagnostics System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior failed in CI Failed test: System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessCollectionTests/TestThreadCollectionBehavior/ MESSAGE: ~~~ System.IndexOutOfRangeException : Index was outside the bounds of the array. ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessCollectionTests.cs:line 95 ~~~ +24598 area-System.Diagnostics System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior failed in CI Failed test: System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessCollectionTests/TestThreadCollectionBehavior/ MESSAGE: ~~~ System.IndexOutOfRangeException : Index was outside the bounds of the array. ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessCollectionTests.cs:line 95 ~~~ 24599 area-System.Diagnostics System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentOfChildProcess failed in CI Failed test: System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentOfChildProcess Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessStartInfoTests/TestEnvironmentOfChildProcess/ MESSAGE: Expected: HUDSON_COOKIE=2b6c4278-574d-442d-ad2f-c878bb995f20, WORKSPACE=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug, LANG=en_US.UTF-8, BUILD_TAG=jenkins-dotnet_corefx-master-osx10.12_debug-3296, GitBranchOrCommit=*/master, BUILD_NUMBER=3296, JOB_DISPLAY_URL=https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/display/redirect, GIT_PREVIOUS_COMMIT=3143b836af48be68d3b02b45188b134dca25b27c, EXECUTION_DIR=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/bin/tests/System.Diagnostics.Process.Tests/netcoreapp-OSX-Debug-x64, JENKINS_SERVER_COOKIE=637e320b5b282ff8, HOME=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/tempHome, XPC_FLAGS=0x0, BranchName=master, SHLVL=7, QualifiedRepoName=dotnet/corefx, BUILD_TIMESTAMP=2017-10-11 21:36:27 PDT, HUDSON_SERVER_COOKIE=637e320b5b282ff8, GithubProjectName=corefx, GIT_BRANCH=origin/master, NODE_LABELS=dci-mac-build-054 dtap osx-10.12, OLDPWD=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests, JENKINS_HOME=/jenkins, BUILD_DISPLAY_NAME=#3296, GIT_PREVIOUS_SUCCESSFUL_COMMIT=3143b836af48be68d3b02b45188b134dca25b27c, _=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/bin/testhost/netcoreapp-OSX-Debug-x64//dotnet, CORECLR_SERVER_GC=0, com.apple.java.jvmTask=CommandLine, JAVA_ARCH=x86_64, HUDSON_URL=https://ci.dot.net/, BUILD_URL=https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/, __BUILDTOOLS_USE_CSPROJ=true, AutoSaveReproEnv=false, MSBuildLoadMicrosoftTargetsReadOnly=true, XPC_SERVICE_NAME=0, MSBuildForwardPropertiesFromChild=TargetPath, JENKINS_URL=https://ci.dot.net/, LC_ALL=en_US.UTF-8, RUNTIME_PATH=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/bin/testhost/netcoreapp-OSX-Debug-x64/, GIT_COMMIT=882303fc6863f3cfd86c6860c37fd898905d781f, BUILD_ID=3296, PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin, NODE_NAME=dci-mac-build-054, EXECUTOR_NUMBER=0, DOTNET_CLI_TELEMETRY_PROFILE=IsInternal_CIServer;dotnet/corefx, GIT_URL=https://github.com/dotnet/corefx.git, __CF_USER_TEXT_ENCODING=0x0:0:0, JOB_URL=https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/, JAVA_MAIN_CLASS_66742=hudson.remoting.Launcher, HUDSON_HOME=/jenkins, JOB_BASE_NAME=osx10.12_debug, TestEnvironmentOfChildProcess_SpecialStuff=ሴ\n噸, RUN_CHANGES_DISPLAY_URL=https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/display/redirect?page=changes, PWD=/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/bin/tests/System.Diagnostics.Process.Tests/netcoreapp-OSX-Debug-x64, RUN_DISPLAY_URL=https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/display/redirect, JOB_NAME=dotnet_corefx/master/osx10.12_debug, GithubOrgName=dotnet\n Actual: \n Expected: True\n Actual: False STACK TRACE: at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentOfChildProcess() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessStartInfoTests.cs:line 225 24600 area-System.Diagnostics System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream failed in CI Failed test: System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessStreamReadTests/TestAsyncErrorStream/ MESSAGE: ~~~ Assert.Equal() Failure\n ↓ (pos 0)\nExpected: System.Diagnostics.Process.Tests started ···\nActual: A fatal error occurred, the required libr···\n ↑ (pos 0) ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessStreamReadTests.cs:line 50 ~~~ 24601 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix failed in CI Failed tests: * System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix * System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream Configuration: osx10.12_debug Detail: * https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessTests/TestBasePriorityOnUnix/ * https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessStreamReadTests/TestAsyncErrorStream/ MESSAGE: (System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix) ~~~ System.ComponentModel.Win32Exception : No such process ~~~ STACK TRACE: ~~~ at System.Diagnostics.Process.get_PriorityClassCore() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs:line 196 at System.Diagnostics.Process.get_PriorityClass() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 466 at System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessTests.Unix.cs:line 238 ~~~ MESSAGE: (System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream) ~~~ Assert.Equal() Failure\n ↓ (pos 0)\nExpected: System.Diagnostics.Process.Tests started ···\nActual: A fatal error occurred, the required libr···\n ↑ (pos 0) ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessStreamReadTests.cs:line 50 ~~~ 24602 area-System.Diagnostics System.Diagnostics.Tests.ProcessThreadTests.TestThreadStateProperty failed in CI Failed test: System.Diagnostics.Tests.ProcessThreadTests.TestThreadStateProperty Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessThreadTests/TestThreadStateProperty/ MESSAGE: ~~~ System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection.\nParameter name: index ~~~ STACK TRACE: ~~~ at System.Collections.ArrayList.get_Item(Int32 index) at System.Diagnostics.ProcessThreadCollection.get_Item(Int32 index) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessThreadCollection.cs:line 35 at System.Diagnostics.Tests.ProcessThreadTests.TestThreadStateProperty() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessThreadTests.cs:line 199 ~~~ 24603 area-System.Diagnostics System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_EnableRaisingEvents_CorrectExitCode failed in CI Failed test: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_EnableRaisingEvents_CorrectExitCode Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3296/testReport/System.Diagnostics.Tests/ProcessWaitingTests/SingleProcess_EnableRaisingEvents_CorrectExitCode_exitCode__0_/ MESSAGE: ~~~ Assert.Equal() Failure\nExpected: 0\nActual: 131 ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessWaitingTests.d__6.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Diagnostics.Process/tests/ProcessWaitingTests.cs:line 123 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 ~~~ -24606 area-System.Memory System.Memory package for netcoreapp2.0 is missing System.Numerics.Vectors reference *Steps to Reproduce*: 1. docker run -it --rm microsoft/dotnet:2.0-sdk 2. mkdir ~/project 3. cd ~/project 4. dotnet new console 5. dotnet add package System.Memory --version 4.5.0-preview1-25812-01 --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json 6. `static void Main() { System.SpanExtensions.SequenceEqual(new byte[123], new byte[123]); }` 7. dotnet run *Expected Behavior*: No error. *Actual Behavior*: ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at System.SpanHelpers.SequenceEqual(Byte& first, Byte& second, Int32 length) at System.SpanExtensions.SequenceEqual(Span`1 first, ReadOnlySpan`1 second) at project.Program.Main() ``` *Workaround*: 8. dotnet add package System.Numerics.Vectors --version 4.5.0-preview1-25812-01 --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json -24608 area-System.Data sni.dll bug or problem using the same login. I think there's a bug where I am using the same login to connect to a database, while another process is doing the same with connection pooling. The way to test is to create a login for sql server, have 2 different apps connect using the same login under a service (using nssm as the service host). And the messasge sni.dll not found is sent on the connection open command. The OS 2008 server sql server version 2008 r2. -24610 area-System.Net Is System.Net.Sockets a Implement Of NIO? @anthonywanted commented on [Thu Oct 12 2017](https://github.com/dotnet/core/issues/1025) # Issue Title Is System.Net.Sockets an Implement Of NIO? # General Just few questions. Is System.Net.Sockets an Implement of NIO? In windows, is it an implement of IOCP? In Linux, is it an implement of epoll? How about aspnet core? -24611 area-Serialization Ignore the type in SGEN if it contains any property that only have private setter Fix #19723 @shmao @zhenlan @mconnew -24612 area-Infrastructure Mark packages as stable for 2.0.3 cc: @weshaggard -24614 area-System.Memory Proposal: Span.Sort Extensions ## Span.Sort Extensions ```csharp public static class SpanExtensions { public static void Sort(this Span span) where T : IComparable { } public static void Sort(this Span span, Collections.Generic.IComparer comparer) { } public static void Sort(this Span span, Comparison comparison) { } } ``` **Notes:** * No offset, length overloads as can slice before sort * Extensions so general case can be overridden by more more specific types e.g. ```csharp public static void Sort(this Span span) { } public static void Sort(this Span span) { } ``` Mentioned in api review for array sort https://github.com/dotnet/apireviews/blob/master/2017/10-10-GitHub%20issues.md /cc @stephentoub @KrzysztofCwalina @terrajobst @karelz +24606 area-System.Memory System.Memory package for netcoreapp2.0 is missing System.Numerics.Vectors reference *Steps to Reproduce*: 1. docker run -it --rm microsoft/dotnet:2.0-sdk 2. mkdir ~/project 3. cd ~/project 4. dotnet new console 5. dotnet add package System.Memory --version 4.5.0-preview1-25812-01 --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json 6. `static void Main() { System.SpanExtensions.SequenceEqual(new byte[123], new byte[123]); }` 7. dotnet run *Expected Behavior*: No error. *Actual Behavior*: ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at System.SpanHelpers.SequenceEqual(Byte& first, Byte& second, Int32 length) at System.SpanExtensions.SequenceEqual(Span`1 first, ReadOnlySpan`1 second) at project.Program.Main() ``` *Workaround*: 8. dotnet add package System.Numerics.Vectors --version 4.5.0-preview1-25812-01 --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json +24608 area-System.Data sni.dll bug or problem using the same login. I think there's a bug where I am using the same login to connect to a database, while another process is doing the same with connection pooling. The way to test is to create a login for sql server, have 2 different apps connect using the same login under a service (using nssm as the service host). And the messasge sni.dll not found is sent on the connection open command. The OS 2008 server sql server version 2008 r2. +24610 area-System.Net Is System.Net.Sockets a Implement Of NIO? xxx commented on [Thu Oct 12 2017](https://github.com/dotnet/core/issues/1025) # Issue Title Is System.Net.Sockets an Implement Of NIO? # General Just few questions. Is System.Net.Sockets an Implement of NIO? In windows, is it an implement of IOCP? In Linux, is it an implement of epoll? How about aspnet core? +24611 area-Serialization Ignore the type in SGEN if it contains any property that only have private setter Fix #19723 xxx xxx @mconnew +24612 area-Infrastructure Mark packages as stable for 2.0.3 cc: @weshaggard +24614 area-System.Memory Proposal: Span.Sort Extensions ## Span.Sort Extensions ```csharp public static class SpanExtensions { public static void Sort(this Span span) where T : IComparable { } public static void Sort(this Span span, Collections.Generic.IComparer comparer) { } public static void Sort(this Span span, Comparison comparison) { } } ``` **Notes:** * No offset, length overloads as can slice before sort * Extensions so general case can be overridden by more more specific types e.g. ```csharp public static void Sort(this Span span) { } public static void Sort(this Span span) { } ``` Mentioned in api review for array sort https://github.com/dotnet/apireviews/blob/master/2017/10-10-GitHub%20issues.md /cc xxx xxx xxx @karelz 24615 area-System.Net add some code to make sure we sent datagram before we try to receive it This has been long outstanding problem. I was able to reproduce this locally on old Ubuntu 14 and running ALL tests in loop. This did non repro while running only single test or running them in sequence. I was able to collect traces suggesting that in some cases send() is called after recv failed. I added Task.Wait() to increase changes that sent is actually done when we try to receive. With this change I was able to run the test for a day where it would fail in about one hour before. My original change had 1s wait. However after one day, it failed again with new debug message that the sending task did not complete in 1s time. This is Azure VM instance where it is not clear what else is happening at the same time. I feel it would be better to be more liberal and possibly wait longer than have random failures. I bumped wait() timeout to 3s and receive timeout to 1s. This is still best guess but the tests are still running right now. When I get 3-5 days without failure I'll update this PR. I just wanted to get it out so people can comment on it. fixes #17681 -24616 area-System.IO Switch WaitNamedPipe and CreateNamedPipeClient invocation ordering. We need to do this as WaitNamedPipe is not supported in Windows Containers. With this change, CreateNamedPipeClient will be called first, with call to WaitNamedPipe as a fallback only. This will allow us to use NamedPipeClientStream inside Windows Containers. This should handle both https://github.com/dotnet/corefx/issues/24594 and https://github.com/dotnet/corefx/issues/22014. Fixes #22014 per @jiria request keeping #24594 open until it is ported to the next servicing release. [Edit: added last line to close one issue and make clear why the other one is still open] -24617 area-System.Memory Proposal: {ReadOnly}Memory Extensions (mirror Span) ## `{ReadOnly}Memory` Extensions ### Background Came up in https://github.com/dotnet/corefx/pull/24389#discussion_r142536789 Currently you can use all the `Span` extensions and methods from `Memory` by extracting the `Span` e.g. ```csharp memory0.Span.SequenceEqual(memory1.Span); ``` However this has two downsides 1. Not discoverable; you need to use the Span property to find them 2. Span can't be used in an `async` method; so to use them you need to create a second method and call that ### Proposal Include the second method as extensions on `{ReadOnly}Memory` that passes through to the Span ```csharp public static class MemoryExtensions { // Span methods converted to Memory extension public static void CopyTo(this Memory memory, Memory destination) => memory.Span.CopyTo(destination.Span); public static void CopyTo(this ReadOnlyMemory memory, Memory destination) => memory.Span.CopyTo(destination.Span); public static bool TryCopyTo(this Memory memory, Memory destination) => memory.Span.TryCopyTo(destination.Span); public static bool TryCopyTo(this ReadOnlyMemory memory, Memory destination) => memory.Span.TryCopyTo(destination.Span); public static void Fill(this Memory memory, T value) => memory.Span.Fill(value); // Array extension as per Span extension public static void CopyTo(this T[] array, Memory destination) => array.CopyTo(destination.Span); // Valid? via Owned memory? public static ReadOnlyMemory AsReadOnlyMemory(this string text); // Discoverable conversions as per Span public static Memory AsMemory(this ArraySegment arraySegment) => arraySegment; public static Memory AsMemory(this T[] array) => array; // Span extension pass-throughs public static int IndexOf(this Memory memory, byte value) => memory.Span.IndexOf(value); public static int IndexOf(this Memory memory, ReadOnlyMemory value) => memory.Span.IndexOf(value.Span); public static int IndexOf(this ReadOnlyMemory memory, byte value) => memory.Span.IndexOf(value); public static int IndexOf(this ReadOnlyMemory memory, ReadOnlyMemory value) => memory.Span.IndexOf(value.Span); public static int IndexOf(this Memory memory, T value) where T : struct, IEquatable => memory.Span.IndexOf(value); public static int IndexOf(this Memory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.IndexOf(value.Span); public static int IndexOf(this ReadOnlyMemory memory, T value) where T : struct, IEquatable => memory.Span.IndexOf(value); public static int IndexOf(this ReadOnlyMemory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.IndexOf(value.Span); public static int IndexOfAny(this Memory memory, byte value0, byte value1) => memory.Span.IndexOfAny(value0, value1); public static int IndexOfAny(this Memory memory, byte value0, byte value1, byte value2) => memory.Span.IndexOfAny(value0, value1, value2); public static int IndexOfAny(this Memory memory, ReadOnlyMemory values) => memory.Span.IndexOfAny(values.Span); public static int IndexOfAny(this ReadOnlyMemory memory, byte value0, byte value1) => memory.Span.IndexOfAny(value0, value1); public static int IndexOfAny(this ReadOnlyMemory memory, byte value0, byte value1, byte value2) => memory.Span.IndexOfAny(value0, value1, value2); public static int IndexOfAny(this ReadOnlyMemory memory, ReadOnlyMemory values) => memory.Span.IndexOfAny(values.Span); public static bool SequenceEqual(this Memory first, ReadOnlyMemory second) => first.Span.SequenceEqual(second.Span); public static bool SequenceEqual(this ReadOnlyMemory first, ReadOnlyMemory second) => first.Span.SequenceEqual(second.Span); public static bool SequenceEqual(this Memory first, ReadOnlyMemory value) where T : struct, IEquatable => first.Span.SequenceEqual(value.Span); public static bool SequenceEqual(this ReadOnlyMemory first, ReadOnlyMemory value) where T : struct, IEquatable => first.Span.SequenceEqual(value.Span); public static bool StartsWith(this Memory memory, ReadOnlyMemory value) => memory.Span.StartsWith(value.Span); public static bool StartsWith(this ReadOnlyMemory memory, ReadOnlyMemory value) => memory.Span.StartsWith(value.Span); public static bool StartsWith(this Memory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.StartsWith(value.Span); public static bool StartsWith(this ReadOnlyMemory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.StartsWith(value.Span); } ``` ### Notes Items that change length can't be replicated due to the backing store e,g, `AsBytes`, `NonPortableCast` ### Question Is a string conversion possible? ```csharp public static ReadOnlyMemory AsReadOnlyMemory(this string text); ``` /cc @davidfowl @KrzysztofCwalina @stephentoub @jkotas -24618 area-System.Diagnostics Create the Microsoft.Diagnostics.EventSource.Redist Nuget Package The package will be completed once the following is done: - [X] Create project and solution file for Microsoft.Diagnostics.Tracing.EventSource.Redist. - [x] Copy the code into CoreFX and make it build. - [X] Migrate changes required for this nuget package (code changes and missing resource strings) back to CoreCLR. - [X] Mirror code from CoreCLR repo. - [X] Use SR for resource strings instead of using ResourceManager directly. - [X] Produce a nuget package. - [X] Enable EventSource tests to run against Microsoft.Diagnostics.Tracing.EventSource.Redist during CI. - [x] Add EventCounter source and tests. +24616 area-System.IO Switch WaitNamedPipe and CreateNamedPipeClient invocation ordering. We need to do this as WaitNamedPipe is not supported in Windows Containers. With this change, CreateNamedPipeClient will be called first, with call to WaitNamedPipe as a fallback only. This will allow us to use NamedPipeClientStream inside Windows Containers. This should handle both https://github.com/dotnet/corefx/issues/24594 and https://github.com/dotnet/corefx/issues/22014. Fixes #22014 per xxx request keeping #24594 open until it is ported to the next servicing release. [Edit: added last line to close one issue and make clear why the other one is still open] +24617 area-System.Memory Proposal: {ReadOnly}Memory Extensions (mirror Span) ## `{ReadOnly}Memory` Extensions ### Background Came up in https://github.com/dotnet/corefx/pull/24389#discussion_r142536789 Currently you can use all the `Span` extensions and methods from `Memory` by extracting the `Span` e.g. ```csharp memory0.Span.SequenceEqual(memory1.Span); ``` However this has two downsides 1. Not discoverable; you need to use the Span property to find them 2. Span can't be used in an `async` method; so to use them you need to create a second method and call that ### Proposal Include the second method as extensions on `{ReadOnly}Memory` that passes through to the Span ```csharp public static class MemoryExtensions { // Span methods converted to Memory extension public static void CopyTo(this Memory memory, Memory destination) => memory.Span.CopyTo(destination.Span); public static void CopyTo(this ReadOnlyMemory memory, Memory destination) => memory.Span.CopyTo(destination.Span); public static bool TryCopyTo(this Memory memory, Memory destination) => memory.Span.TryCopyTo(destination.Span); public static bool TryCopyTo(this ReadOnlyMemory memory, Memory destination) => memory.Span.TryCopyTo(destination.Span); public static void Fill(this Memory memory, T value) => memory.Span.Fill(value); // Array extension as per Span extension public static void CopyTo(this T[] array, Memory destination) => array.CopyTo(destination.Span); // Valid? via Owned memory? public static ReadOnlyMemory AsReadOnlyMemory(this string text); // Discoverable conversions as per Span public static Memory AsMemory(this ArraySegment arraySegment) => arraySegment; public static Memory AsMemory(this T[] array) => array; // Span extension pass-throughs public static int IndexOf(this Memory memory, byte value) => memory.Span.IndexOf(value); public static int IndexOf(this Memory memory, ReadOnlyMemory value) => memory.Span.IndexOf(value.Span); public static int IndexOf(this ReadOnlyMemory memory, byte value) => memory.Span.IndexOf(value); public static int IndexOf(this ReadOnlyMemory memory, ReadOnlyMemory value) => memory.Span.IndexOf(value.Span); public static int IndexOf(this Memory memory, T value) where T : struct, IEquatable => memory.Span.IndexOf(value); public static int IndexOf(this Memory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.IndexOf(value.Span); public static int IndexOf(this ReadOnlyMemory memory, T value) where T : struct, IEquatable => memory.Span.IndexOf(value); public static int IndexOf(this ReadOnlyMemory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.IndexOf(value.Span); public static int IndexOfAny(this Memory memory, byte value0, byte value1) => memory.Span.IndexOfAny(value0, value1); public static int IndexOfAny(this Memory memory, byte value0, byte value1, byte value2) => memory.Span.IndexOfAny(value0, value1, value2); public static int IndexOfAny(this Memory memory, ReadOnlyMemory values) => memory.Span.IndexOfAny(values.Span); public static int IndexOfAny(this ReadOnlyMemory memory, byte value0, byte value1) => memory.Span.IndexOfAny(value0, value1); public static int IndexOfAny(this ReadOnlyMemory memory, byte value0, byte value1, byte value2) => memory.Span.IndexOfAny(value0, value1, value2); public static int IndexOfAny(this ReadOnlyMemory memory, ReadOnlyMemory values) => memory.Span.IndexOfAny(values.Span); public static bool SequenceEqual(this Memory first, ReadOnlyMemory second) => first.Span.SequenceEqual(second.Span); public static bool SequenceEqual(this ReadOnlyMemory first, ReadOnlyMemory second) => first.Span.SequenceEqual(second.Span); public static bool SequenceEqual(this Memory first, ReadOnlyMemory value) where T : struct, IEquatable => first.Span.SequenceEqual(value.Span); public static bool SequenceEqual(this ReadOnlyMemory first, ReadOnlyMemory value) where T : struct, IEquatable => first.Span.SequenceEqual(value.Span); public static bool StartsWith(this Memory memory, ReadOnlyMemory value) => memory.Span.StartsWith(value.Span); public static bool StartsWith(this ReadOnlyMemory memory, ReadOnlyMemory value) => memory.Span.StartsWith(value.Span); public static bool StartsWith(this Memory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.StartsWith(value.Span); public static bool StartsWith(this ReadOnlyMemory memory, ReadOnlyMemory value) where T : struct, IEquatable => memory.Span.StartsWith(value.Span); } ``` ### Notes Items that change length can't be replicated due to the backing store e,g, `AsBytes`, `NonPortableCast` ### Question Is a string conversion possible? ```csharp public static ReadOnlyMemory AsReadOnlyMemory(this string text); ``` /cc xxx xxx xxx @jkotas +24618 area-System.Diagnostics Create the Microsoft.Diagnostics.EventSource.Redist Nuget Package The package will be completed once the following is done: - [X] Create project and solution file for Microsoft.Diagnostics.Tracing.EventSource.Redist. - [x] Copy the code into CoreFX and make it build. - [X] Migrate changes required for this nuget package (code changes and missing resource strings) back to CoreCLR. - [X] Mirror code from CoreCLR repo. - [X] Use SR for resource strings instead of using ResourceManager directly. - [X] Produce a nuget package. - [X] Enable EventSource tests to run against Microsoft.Diagnostics.Tracing.EventSource.Redist during CI. - [x] Add EventCounter source and tests. 24619 area-Infrastructure Fix call to create submission metadata We made a change to the Benchview tooling and did not update the use of it in the CoreFX repo. This fixes that. 24620 area-Infrastructure Fix call to create submission metadata We made a change to the Benchview tooling and did not update the use of it in the CoreFX repo. This fixes that. -24621 area-System.Data Improving System.Data.Odbc by making it adhere to interop conventions Reference: https://github.com/dotnet/corefx/blob/42ce0e696e08e190aceaf8613e47e67d57178550/Documentation/coding-guidelines/interop-guidelines.md cc: @safern @danmosemsft @stephentoub -24622 area-Infrastructure Mark as stable for 1.1.5 All the crypto bumps are for: https://github.com/dotnet/corefx/pull/24459 cc: @weshaggard @bartonjs @ianhays +24621 area-System.Data Improving System.Data.Odbc by making it adhere to interop conventions Reference: https://github.com/dotnet/corefx/blob/42ce0e696e08e190aceaf8613e47e67d57178550/Documentation/coding-guidelines/interop-guidelines.md cc: xxx xxx @stephentoub +24622 area-Infrastructure Mark as stable for 1.1.5 All the crypto bumps are for: https://github.com/dotnet/corefx/pull/24459 cc: xxx xxx @ianhays 24623 area-System.IO Remove search trimming Trimming prevents access to valid Windows paths. We've removed trimming from the rest of our API surface, this is the last place we have it. Fixes #21096 -24625 area-Infrastructure Mark packages as stable for 1.0.8 servicing cc: @weshaggard @ianhays @bartonjs -24626 area-System.Memory Adding ValidateTypeIsBlittable SpanHelper method and rename constant Addressing leftover feedback from https://github.com/dotnet/corefx/pull/24400#pullrequestreview-69064639 cc @weshaggard, @KrzysztofCwalina, @jkotas +24625 area-Infrastructure Mark packages as stable for 1.0.8 servicing cc: xxx xxx @bartonjs +24626 area-System.Memory Adding ValidateTypeIsBlittable SpanHelper method and rename constant Addressing leftover feedback from https://github.com/dotnet/corefx/pull/24400#pullrequestreview-69064639 cc @weshaggard, @KrzysztofCwalina, @jkotas 24627 area-System.Diagnostics Make stack traces readable "Now that Task, async and await are prevalent - stack traces have become a lot less readable. Here's one that I was sent today: ``` System.InvalidOperationException: The specified API ""ConditionedProperties"" is not available because ProjectLoadSettings.DoNotEvaluateElementsWithFalseCondition was set when loading this project. at Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(String resourceName, Object[] args) in e:\projects\msbuild_3\src\Shared\ErrorUtilities.cs:line 304 at Microsoft.Build.Evaluation.Project.get_ConditionedProperties() in e:\projects\msbuild_3\src\Build\Definition\Project.cs:line 709 at Microsoft.VisualStudio.ProjectSystem.CoreProjectConfigurationsDimensionsProvider.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.DeclaredDimensionsProjectConfigurationsService.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectCache`1.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.ProjectConfigurationsServiceBase.d__55.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__24.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.DefaultingProjectConfigurationsServiceBase.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__23.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.VSUnconfiguredProjectIntegrationService.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.VSUnconfiguredProjectIntegrationService.d__62.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.NuGet.NuGetRestorer.d__18.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.Subscriptions.DependencySubscriptionsHost.d__45.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.OnceInitializedOnceDisposedAsync.<<-ctor>b__4_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Threading.AsyncLazy`1.<>c__DisplayClass13_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__19.MoveNext() ``` Here it is minus the noise: ``` System.InvalidOperationException: The specified API ""ConditionedProperties"" is not available because ProjectLoadSettings.DoNotEvaluateElementsWithFalseCondition was set when loading this project. at Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(String resourceName, Object[] args) in e:\projects\msbuild_3\src\Shared\ErrorUtilities.cs:line 304 at Microsoft.Build.Evaluation.Project.get_ConditionedProperties() in e:\projects\msbuild_3\src\Build\Definition\Project.cs:line 709 at Microsoft.VisualStudio.ProjectSystem.CoreProjectConfigurationsDimensionsProvider.d__7.MoveNext() at Microsoft.VisualStudio.ProjectSystem.DeclaredDimensionsProjectConfigurationsService.d__9.MoveNext() at Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectCache`1.d__6.MoveNext() at Microsoft.VisualStudio.ProjectSystem.ProjectConfigurationsServiceBase.d__55.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__24.MoveNext() at Microsoft.VisualStudio.ProjectSystem.DefaultingProjectConfigurationsServiceBase.d__3.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__23.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.VSUnconfiguredProjectIntegrationService.d__68.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.VSUnconfiguredProjectIntegrationService.d__62.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__20.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.NuGet.NuGetRestorer.d__18.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.Subscriptions.DependencySubscriptionsHost.d__45.MoveNext() at Microsoft.VisualStudio.ProjectSystem.OnceInitializedOnceDisposedAsync.<<-ctor>b__4_0>d.MoveNext() at Microsoft.VisualStudio.Threading.AsyncLazy`1.<>c__DisplayClass13_1.<b__0>d.MoveNext() at Microsoft.VisualStudio.ProjectSystem.VS.Tree.Dependencies.CrossTarget.CrossTargetSubscriptionHostBase.d__19.MoveNext() ``` Much more understandable/readable. Is there something we can do to collapse/reduce the noise here?" -24628 area-System.Collections "Test: System.Collections.Tests.Perf_ArrayList/Indexer failed with ""System.OutOfMemoryException""" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.Perf_ArrayList/Indexer` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: Build : Master - 20171013.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release - Windows.7.Amd64-x86 - Release - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171013.01/workItem/System.Collections.NonGeneric.Performance.Tests/analysis/xunit/System.Collections.Tests.Perf_ArrayList~2FIndexer -24630 area-System.Data "Test: System.Data.Odbc.Tests.DependencyCheckTest/OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Data.Odbc.Tests.DependencyCheckTest/OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException` has failed. Assert.Throws() Failure\r Expected: typeof(System.DllNotFoundException)\r Actual: (No exception was thrown) Stack Trace: at System.Data.Odbc.Tests.DependencyCheckTest.OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException() Build : Master - 20171013.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171013.01/workItem/System.Data.Odbc.Tests/analysis/xunit/System.Data.Odbc.Tests.DependencyCheckTest~2FOdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException +24628 area-System.Collections "Test: System.Collections.Tests.Perf_ArrayList/Indexer failed with ""System.OutOfMemoryException""" Opened on behalf of xxx The test `System.Collections.Tests.Perf_ArrayList/Indexer` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: Build : Master - 20171013.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release - Windows.7.Amd64-x86 - Release - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171013.01/workItem/System.Collections.NonGeneric.Performance.Tests/analysis/xunit/System.Collections.Tests.Perf_ArrayList~2FIndexer +24630 area-System.Data "Test: System.Data.Odbc.Tests.DependencyCheckTest/OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of xxx The test `System.Data.Odbc.Tests.DependencyCheckTest/OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException` has failed. Assert.Throws() Failure\r Expected: typeof(System.DllNotFoundException)\r Actual: (No exception was thrown) Stack Trace: at System.Data.Odbc.Tests.DependencyCheckTest.OdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException() Build : Master - 20171013.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171013.01/workItem/System.Data.Odbc.Tests/analysis/xunit/System.Data.Odbc.Tests.DependencyCheckTest~2FOdbcConnection_OpenWhenOdbcNotInstalled_ThrowsException 24634 area-System.Net How to Disabled Customer HttpHeader (x-ms-* header) with HttpClient? How to Disabled Customer HttpHeader (x-ms-* header) with HttpClient? ``` x-ms-request-root-id: e3d90637-45d0d4c5cdb27076 x-ms-request-id: |e3d90637-45d0d4c5cdb27076.1. Request-Id: |e3d90637-45d0d4c5cdb27076.1.1. ``` -24635 area-System.IO NamedPipeClientStream not handling error cases correctly According to the documentation this isn't correct: ```C# // The timeout has expired. if (errorCode == Interop.Errors.ERROR_SUCCESS) { if (cancellationToken.CanBeCanceled) { ... ``` It should be checking ERROR_SEM_TIMEOUT. https://msdn.microsoft.com/en-us/library/windows/desktop/aa365800.aspx https://msdn.microsoft.com/en-us/library/cc232125.aspx -24637 area-System.Collections System.Collections.NonGeneric.Performance.Tests failed https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/196/ No test result generated, but shows the following issue: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/Tools/tests.targets(481,5): error : One or more tests failed while running tests from 'System.Collections.NonGeneric.Performance.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/bin/tests/System.Collections.NonGeneric.Performance.Tests/netcoreapp-Linux-Debug-x64/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Collections.NonGeneric/tests/Performance/System.Collections.NonGeneric.Performance.Tests.csproj] -24638 area-System.Data NullReferenceException in SqlBulkCopy when setting ColumnMappings with names We use `SqlBulkCopy` to insert data. In full .NET framework (4, 4.6) it works. The same code in .net core 2 throws `NullReferenceException`. The problem has something to do with column mappings (`SqlBulkCopy.ColumnMappings`). When we set mappings using indexes, everything works. When we set mappings using column names, NRE is thrown. See the attached example. [SqlBulkCopySample.zip](https://github.com/dotnet/corefx/files/1382531/SqlBulkCopySample.zip) +24635 area-System.IO NamedPipeClientStream not handling error cases correctly According to the documentation this isn't correct: ```C# // The timeout has expired. if (errorCode == Interop.Errors.ERROR_SUCCESS) { if (cancellationToken.CanBeCanceled) { ... ``` It should be checking ERROR_SEM_TIMEOUT. https://msdn.microsoft.com/en-us/library/windows/desktop/aa365800.aspx https://msdn.microsoft.com/en-us/library/cc232125.aspx +24637 area-System.Collections System.Collections.NonGeneric.Performance.Tests failed https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/196/ No test result generated, but shows the following issue: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/Tools/tests.targets(481,5): error : One or more tests failed while running tests from 'System.Collections.NonGeneric.Performance.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/bin/tests/System.Collections.NonGeneric.Performance.Tests/netcoreapp-Linux-Debug-x64/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Collections.NonGeneric/tests/Performance/System.Collections.NonGeneric.Performance.Tests.csproj] +24638 area-System.Data NullReferenceException in SqlBulkCopy when setting ColumnMappings with names We use `SqlBulkCopy` to insert data. In full .NET framework (4, 4.6) it works. The same code in .net core 2 throws `NullReferenceException`. The problem has something to do with column mappings (`SqlBulkCopy.ColumnMappings`). When we set mappings using indexes, everything works. When we set mappings using column names, NRE is thrown. See the attached example. [SqlBulkCopySample.zip](https://github.com/dotnet/corefx/files/1382531/SqlBulkCopySample.zip) 24640 area-System.Diagnostics PerfCounter: Override SystemDiagnosticsSection.Properties I noticed `s_properties` in `SystemDiagnosticsSection` wasn't used. In the [reference source](https://github.com/Microsoft/referencesource/blob/master/System/compmod/system/diagnostics/SystemDiagnosticsSection.cs#L42-L46) `Properties` is overridden to return `s_properties`, so do that here. Also, minor cleanup while making changes here (and do the same in `PerfCounterSection`). -24641 area-System.Diagnostics EventSource: Improve debug message more clear string _EventSource_VarArgsParameterMismatch_ in Microsoft.Diagnostics.tracing.EventSource.Redist could be improved showing lists of mismatch type and how they are not match. Current debug message is > parameters to the Event method do not match the parameters to the WriteEvent method. This may cause the event to be displayed incorrectly. -24642 area-Infrastructure Port Pipeline and netci.groovy changes from master This is porting the netci.groovy and Pipeline files from CoreFx master to dev/release/2.0.0. I need to sync with @mmitche to understand what's the best way to merge this / roll it out. ie, I know I need to make an update to repolist.txt, it's not clear to me what the preferred method to validate these changes is. Is it worth validating these in my fork before merging to dotnet/corefx, or is validating post merge sufficient. -24643 area-System.Data Correcting OdbcIsAvailable condition check for windows Fixes #24630 cc: @danmosemsft +24641 area-System.Diagnostics EventSource: Improve debug message more clear string _EventSource_VarArgsParameterMismatch_ in Microsoft.Diagnostics.tracing.EventSource.Redist could be improved showing lists of mismatch type and how they are not match. Current debug message is > parameters to the Event method do not match the parameters to the WriteEvent method. This may cause the event to be displayed incorrectly. +24642 area-Infrastructure Port Pipeline and netci.groovy changes from master This is porting the netci.groovy and Pipeline files from CoreFx master to dev/release/2.0.0. I need to sync with xxx to understand what's the best way to merge this / roll it out. ie, I know I need to make an update to repolist.txt, it's not clear to me what the preferred method to validate these changes is. Is it worth validating these in my fork before merging to dotnet/corefx, or is validating post merge sufficient. +24643 area-System.Data Correcting OdbcIsAvailable condition check for windows Fixes #24630 cc: @danmosemsft 24644 area-System.Net Fix HttpWebRequest when sending with HTTP/1.0 The HttpWebRequest.ProtocolVersion property was implemented. But it was not checked when actually creating the request (which uses HttpClient underneath). So, all requests were sent with HTTP/1.1. This fix now uses the ProtocolVersion property and sends either HTTP/1.0 or HTTP/1.1. Note: HTTP/2.0 is currently not supported when setting the ProtocolVersion property. An ArgumentException is thrown. This is the existing .NET Framework behavior which was ported to .NET Core. We could investigate changing this in the future to allow ProtocolVersion to be set to 2.0. Fixes #24597 -24645 area-Infrastructure Update package index This should fix https://github.com/dotnet/corefx/issues/24606. This is a follow-up of https://github.com/dotnet/corefx/pull/23168 which fixes the inbox assembly versions. cc @ericstj -24646 area-Infrastructure segfault in System.Net.Http.FunctionalTests on Windows code coverage https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/346/consoleFull#-113183012733fe3402-0c0f-45a7-a707-47164965bab5 https://dumpling.azurewebsites.net/api/dumplings/archived/f0b9dd148029f34b6dd910d2c5edff204b06aa0c +24645 area-Infrastructure Update package index This should fix https://github.com/dotnet/corefx/issues/24606. This is a follow-up of https://github.com/dotnet/corefx/pull/23168 which fixes the inbox assembly versions. cc @ericstj +24646 area-Infrastructure segfault in System.Net.Http.FunctionalTests on Windows code coverage https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/346/consoleFull#-113183012733fe3402-0c0f-45a7-a707-47164965bab5 https://dumpling.azurewebsites.net/api/dumplings/archived/f0b9dd148029f34b6dd910d2c5edff204b06aa0c 24648 area-System.Net Incorrect SSLStream cipher suites on Linux "Currently SSLStream just passes ""All"" to OpenSSL for cipher suites. This is causing two unwanted choices: 1. It doesn't enable ECDHE or DHE cipher suites as that requires a separate call to set up. 2. It enables cipher suites using the SEED and CAMELLIA block ciphers, which can cause compliance issues. We should consider this as a servicing candidate since a better set of suites improves defense-in-depth. " 24650 area-System.ComponentModel System.ComponentModel.Win32Exception doesn't match ref contract I encountered an issue while working with the corefx libraries using custom tooling. It's possible that the following scenario is allowed, but here's what I'm seeing. In M.Win32.Primitives the Win32Exception class has the GetObjectData method defined in the ref contract. The method was removed from the implementation in https://github.com/dotnet/corefx/commit/9eafffc6054c8f039d788465621bcfd49a379ca1. Assemblies in corefx build against the ref contract and have a memberref to a non existing member. It is still implemented by a base type, but shouldn't this cause method binding errors? Is this a case that is allowed by CIL spec or is this actually an error hidden by coreclr? Edit for clarity: This isn't a binding question, it's more of a CIL decoding question. The particular error I encountered has a MemberReference token to the method in question. AFAIK a CIL decoder shouldn't need to do method resolution while trying to decode the stream. Edit: The method is also explicitly overridden by Win32Exception in the netstandard contract. 24652 area-System.Runtime UriTemplate from System.ServiceModel "It would be nice to be able to do something like this: ```csharp private static readonly UriTemplate _activationTemplate = new UriTemplate(""license/activate/{licenseKey}""); public async Task ActivateAsync(LicenseActivationRequest activationRequest) { var requestUrl = _activationTemplate.BindByPosition(_httpClient.BaseAddress, activationRequest.LicenseKey); var serialized = JsonConvert.SerializeObject(activationRequest, _serializerSettings); var content = new StringContent(serialized, Encoding.UTF8, ""application/json""); using (var response = await _httpClient.PutAsync(requestUrl, content).ConfigureAwait(false)) { // ... } // ... } ``` #7983 asks about the same thing, and the response was: > Thank you for the suggestion. It is a good idea in general about having templates, but we think it belongs where it is in WCF and is not generally applicable to .NET Core. I think that comment misunderstands the use case for `UriTemplate`s. There's nothing WCF-specific about `UriTemplate`. In fact, the code above is taken from a service client implementation that interacts with an ASP.NET Core web service. `UriTemplate` is used to safely build URLs. It's safer, and more capable than string concatenation. Building URLs isn't specific to WCF, so it would be nice if it were available in .NET Core." -24653 area-System.Runtime ValueTuple compatibility issues in .NET Framework 4.7.1 Cross posting for better visibility: Microsoft/dotnet-framework-early-access#9 Fall creators update is going live in two days. Heads up! It will generate nasty compat issues for applications using `Task`. Not sure if this is a known issue or by design, but I have lost entire day today trying to track it down. +24653 area-System.Runtime ValueTuple compatibility issues in .NET Framework 4.7.1 Cross posting for better visibility: Microsoft/dotnet-framework-early-access#9 Fall creators update is going live in two days. Heads up! It will generate nasty compat issues for applications using `Task`. Not sure if this is a known issue or by design, but I have lost entire day today trying to track it down. 24655 area-System.Data Correct row source field is used to get column ordinal. Current version uses `_DbDataReaderRowSource` field. This field is `null` in case of own implementation of `IDataReader`, which is not inherited from `DbDataReader`. Fixes #24638 24656 area-System.Drawing Fix for GraphicsPathIterator.CopyData throws EntrypointNotFoundException when index is out of range. Work related to (#22026) 24657 area-System.Text the Package: System.Text.Encoding.CodePages (ver:4.4.0) cannot be published "I found this package of version 4.4.0 cannot be publish when I use ""dotnet publish"". when I change to version 4.3.0, It's ok, It has rutimes\win and runtimes\unix. for version 4.4-preview, it has only runtimes\win, no runtimes\unix." @@ -48,10 +48,10 @@ ID Area Title Description 24661 area-System.Net WinForms application referencing NuGet library (.NETStandard 1.3) will not deploy System.Net.Http Installing a NuGet package to a WinForms application which targets .NETStandard 1.3 results in an incomplete deployment. The dll System.Net.Http is not deployed (it's in the Debug/Release folder but not in the Publish folder) and also missing in Publish/Application Files. Steps to reproduce 1) Create a new WinForms project. 2) Reference (in my case) YouTrackSharp (3.1.0). 3) Publish the project and see that System.Net.Http is missing. 24662 area-System.Security Cannot decompress Rijndael encrypted Gzip Hello, we are using Rijndael encrypted gzips. The following code works just fine in .NET Framework 4.6.1 but throws exception in .NET Core 2.0 ``` using (var rijAlg = Rijndael.Create()) { rijAlg.Key = _configK; rijAlg.IV = _configI; rijAlg.BlockSize = 128; rijAlg.Padding = PaddingMode.PKCS7; // Create a decrytor to perform the stream transform. var decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV); // Create the streams used for decryption. using (var sourceStream = new MemoryStream(buffer)) { using (var decryptStream = new CryptoStream(sourceStream, decryptor, CryptoStreamMode.Read)) { if (isGzipped) { using (var unzipStream = new System.IO.Compression.GZipStream(decryptStream, System.IO.Compression.CompressionMode.Decompress)) { using (var targetStream = new MemoryStream()) { unzipStream.CopyTo(targetStream); Content = targetStream.ToArray(); } } } else { using (var targetStream = new MemoryStream()) { decryptStream.CopyTo(targetStream); Content = targetStream.ToArray(); } } } } } ``` The exception is: `The archive entry was compressed using an unsupported compression method.` Stack trace: ``` at System.IO.Compression.Inflater.Inflate(FlushCode flushCode) at System.IO.Compression.Inflater.ReadInflateOutput(Byte* bufPtr, Int32 length, FlushCode flushCode, Int32& bytesRead) at System.IO.Compression.Inflater.InflateVerified(Byte* bufPtr, Int32 length) at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 length) at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count) at System.IO.Compression.GZipStream.Read(Byte[] array, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) ``` Maybe the decryptor has a bug which results in an invalid decrypted data and that's why GzipStream fails to decompress it? 24663 area-System.Runtime SystemNative_SysConf does not check for errors It returns the result of calling `sysconf` directly: https://github.com/dotnet/corefx/blob/c4d0529c24a8abc50009e561e96efed6b3e002b9/src/Native/Unix/System.Native/pal_io.cpp#L844-L859 From the man page of `sysconf`: ``` RETURN VALUE The return value of sysconf() is one of the following: * On error, -1 is returned and errno is set to indicate the cause of the error (for example, EINVAL, indicating that name is invalid). * If name corresponds to a maximum or minimum limit, and that limit is indeterminate, -1 is returned and errno is not changed. (To distinguish an indeterminate limit from an error, set errno to zero before the call, and then check whether errno is nonzero when -1 is returned.) * If name corresponds to an option, a positive value is returned if the option is supported, and -1 is returned if the option is not supported. * Otherwise, the current value of the option or limit is returned. This value will not be more restrictive than the corresponding value that was described to the application in or when the application was compiled. ``` Sysconf is indeed failing (I'm trying to get a minimal repro, but it's taking a while to narrow down). The end effect is [`Environment.ProcessorCount`](https://github.com/dotnet/corefx/blob/475c578fc77e16344679e337276c91a70fe1c79c/src/System.Runtime.Extensions/src/System/Environment.Unix.cs#L361) returns `-1`, which is... bizarre, to say the least! [EDIT] Making code link inline for readability by @karelz -24675 area-System.Drawing System.Drawing.Common needs netfx and netstandard configurations Right now it has only netcoreapp configuration. A netstandard configuration that simply throws would allow netstandard libraries that don't use drawing to reference the upcoming compat pack. Ideally it can be built properly for netstandard in which case this would allow netstandard libraries to use drawing. It also needs a netfx configuration to make a shim System.Drawing.Common that redirects to System.Drawing, so such netstandard libraries could also work on .NET Framework. fyi @weshaggard @terrajobst +24675 area-System.Drawing System.Drawing.Common needs netfx and netstandard configurations Right now it has only netcoreapp configuration. A netstandard configuration that simply throws would allow netstandard libraries that don't use drawing to reference the upcoming compat pack. Ideally it can be built properly for netstandard in which case this would allow netstandard libraries to use drawing. It also needs a netfx configuration to make a shim System.Drawing.Common that redirects to System.Drawing, so such netstandard libraries could also work on .NET Framework. fyi xxx @terrajobst 24677 area-System.Net Disposing Socket during Socket.Receive behaves badly on *nix "### Repro app: ```C# using System; using System.Net; using System.Net.Sockets; using System.Threading.Tasks; namespace SocketInvalidArg { class Program { static void Main(string[] args) { using (var serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { serverSocket.Bind(new IPEndPoint(IPAddress.Loopback, 5000)); serverSocket.Listen(512); var i = 0; try { for (;; i++) { using (var clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { clientSocket.Connect(IPAddress.Loopback, 5000); var acceptSocket = serverSocket.Accept(); Task.WaitAll(Task.Run(() => ReadInput(acceptSocket)), Task.Run(() => acceptSocket.Dispose())); } } } catch { Console.Write(""Failed after #{0} iterations"", i); throw; } } } static void ReadInput(Socket socket) { try { Console.WriteLine(""Calling socket.Receive""); var count = socket.Receive(new byte[256]); Console.WriteLine(""Called socket.Receive with count = {0}"", count); } catch (ObjectDisposedException) { Console.WriteLine(""Socket.Receive threw ODE""); } catch (SocketException ex) when (ex.SocketErrorCode != SocketError.InvalidArgument) { Console.WriteLine(ex + Environment.NewLine + ex.SocketErrorCode); } } } } ``` ### Actual Behavior (macOS 10.12 and Ubuntu 16.04) On macOS and Linux, Socket.Recieve() either throws an ""Invalid argument"" SocketException: ```$ dotnet run Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Failed after #12 iterations Unhandled Exception: System.AggregateException: One or more errors occurred. (Invalid argument) ---> System.Net.Sockets.SocketException: Invalid argument at System.Net.Sockets.Socket.Receive(Byte[] buffer) at SocketInvalidArg.Program.ReadInput(Socket socket) in /Users/shalter/source/halter73/SocketInvalidArg/Program.cs:line 45 at SocketInvalidArg.Program.<>c__DisplayClass0_0.
b__0() in /Users/shalter/source/halter73/SocketInvalidArg/Program.cs:line 28 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of inner exception stack trace --- at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Threading.Tasks.Task.WaitAll(Task[] tasks) at SocketInvalidArg.Program.Main(String[] args) in /Users/shalter/source/halter73/SocketInvalidArg/Program.cs:line 35 ``` Or hangs indefinitely on the call to Socket.Receive: ``` $ dotnet run Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive ``` ### Expected Behavior (Current Behavior on Windows) Socket.Receive always completes. If the Socket is Disposed after the call to Socket.Receive, it throws a ""ConnectionAborted"" SocketException instead of an ""InvalidArgument"" SocketException. ``` ... Calling socket.Receive System.Net.Sockets.SocketException (0x80004005): An established connection was aborted by the software in your host machine at System.Net.Sockets.Socket.Receive(Byte[] buffer) at SocketInvalidArg.Program.ReadInput(Socket socket) in C:\Users\shalter\source\halter73\SocketInvalidArg\Program.cs:line 45 ConnectionAborted Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive Socket.Receive threw ODE Calling socket.Receive System.Net.Sockets.SocketException (0x80004005): An established connection was aborted by the software in your host machine at System.Net.Sockets.Socket.Receive(Byte[] buffer) at SocketInvalidArg.Program.ReadInput(Socket socket) in C:\Users\shalter\source\halter73\SocketInvalidArg\Program.cs:line 45 ConnectionAborted Calling socket.Receive Socket.Receive threw ODE ... (and so it goes forever) ```" 24678 area-System.Console "Tests under ""System.Console.Tests"" failed with ""Exit code was 131 but it should have been 42"" " failed test: CancelKeyPressTests.CanAddAndRemoveHandler_Remote Configuration: oxs10.12_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3358/testReport/(root)/CancelKeyPressTests/CanAddAndRemoveHandler_Remote/ MESSAGE: ~~~ Exit code was 131 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 189 ~~~ -24679 area-System.ComponentModel "Test: System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests/RunWorkerAsync_NoOnWorkHandler_SetsResultToNull failed with ""System.Exception : The background worker never completed""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests/RunWorkerAsync_NoOnWorkHandler_SetsResultToNull` has failed. System.Exception : The background worker never completed. Stack Trace: at System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests.RunWorkerAsync_NoOnWorkHandler_SetsResultToNull() in E:\A\_work\598\s\corefx\src\System.ComponentModel.EventBasedAsync\tests\BackgroundWorkerTests.cs:line 93 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171017.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171017.01/workItem/System.ComponentModel.EventBasedAsync.Tests/analysis/xunit/System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests~2FRunWorkerAsync_NoOnWorkHandler_SetsResultToNull +24679 area-System.ComponentModel "Test: System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests/RunWorkerAsync_NoOnWorkHandler_SetsResultToNull failed with ""System.Exception : The background worker never completed""" Opened on behalf of xxx The test `System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests/RunWorkerAsync_NoOnWorkHandler_SetsResultToNull` has failed. System.Exception : The background worker never completed. Stack Trace: at System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests.RunWorkerAsync_NoOnWorkHandler_SetsResultToNull() in E:\A\_work\598\s\corefx\src\System.ComponentModel.EventBasedAsync\tests\BackgroundWorkerTests.cs:line 93 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171017.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171017.01/workItem/System.ComponentModel.EventBasedAsync.Tests/analysis/xunit/System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests~2FRunWorkerAsync_NoOnWorkHandler_SetsResultToNull 24680 area-System.Runtime Proposal : Full RFC 4122 for Guids # Description Provide full implementation of [RFC 4211](https://tools.ietf.org/html/rfc4122) for UUID as part of the Guid type. Having hash based predictible Guids (v5) which could be derived from string and don't collide with random based guids (v4) can be extremely useful in some scenarios. RFC4122 proposes a standard around UUIDs to address that. # Possible Use Cases Here are some of the use cases I see: * Slug projection to Guid primary key (eliminate the need to maintain an index for that matter, allows using the primary key which is usually the clustered index to get the data) * Mixing potentially identical ids but namespaced in the same keyspace. * Reducing a composite key to a single Guid. * More broadly every scenario where a hash is a good fit (not from a security perspective) but where we need guids. # Proposed API ``` public partial struct Guid { public static readonly Guid DnsNamespace // 6ba7b810-9dad-11d1-80b4-00c04fd430c8 public static readonly Guid UrlNamespace // 6ba7b811-9dad-11d1-80b4-00c04fd430c8 public static Guid NewGuid(); public static Guid NewUuidV1(); public static Guid NewUuidV4(); public static Guid NewUuidV5(string value, Guid namespace); public static Guid NewUuidV5(byte[] value, Guid namespace); } ``` # Details We would obviously keep the existing NewGuid() which in windows calls [`UuidCreate`](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379205(v=vs.85).aspx). It seems that it uses UUID v4 under the hood. In addition we would add NewGuidV1, NewGuidV4 et NewGuidV5 methods. They would map to the adequate UUID generation method. # Related Issues # Open Questions Currently the byte order from the constructor and [ToByteArray is a bit unatural as it just reflect the underlying struct](https://stackoverflow.com/questions/10190817/guid-byte-order-in-net) as we could expect a more natural byte order. It could be worth it to add methods overload to read and write guid using the natural order. # See also * Current implementation: [part 1](https://source.dot.net/#System.Private.CoreLib/shared/System/Guid.cs,b622ef5f6b76c10a) and [part 2](https://source.dot.net/#System.Private.CoreLib/src/System/Guid.CoreCLR.cs,b622ef5f6b76c10a) * [Node JS implementation](https://www.npmjs.com/package/uuid) * [Unoptimized quick and dirty Guid V5 c# implementation](https://github.com/geeklearningio/gl-dotnet-primitives/blob/feature/guid-v5/src/GeekLearning.Primitives/GuidV5.cs) # Updates * December 12, 2017: Provide a first API proposal * January 18, 2017: Add use cases 24681 area-System.Diagnostics Then, what's the status of Code Contracts usage in .NET Core? Related: https://github.com/Microsoft/CodeContracts/issues/231 If the contracts feature is not usable, why included in corefx? 24683 area-System.Net HttpClient SendAsync Object disposed exception when request version is Http 1.1 passes when it is HTTP 1.0 "I am using HttpClient to send a post request to my service , where when user is unauthorized 401 status code is returned on receiving that i throw an exception from my client code, but once this use case is done my client program keeps throwing , i get an exception when i call HttpClient.SendAsync() method. > System.ObjectDisposedException occurred Message: A first chance exception of type 'System.ObjectDisposedException' occurred in System.dll Additional information: Cannot access a disposed object. and finally i get - > System.Net.Http.HttpRequestException occurred > _HResult=-2146233088 > _message=Error while copying content to a stream. > HResult=-2146233088 > IsTransient=false > Message=Error while copying content to a stream. > Source=mscorlib > StackTrace: > at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) > InnerException: System.IO.IOException > _HResult=-2146232800 > _message=The read operation failed, see inner exception. > HResult=-2146232800 > IsTransient=false > Message=The read operation failed, see inner exception. > Source=System.Net.Http > StackTrace: > at System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state) > at System.Net.Http.StreamToStreamCopy.StartRead() > InnerException: System.Net.WebException > _HResult=-2146233079 > _message=The request was aborted: The connection was closed unexpectedly. > HResult=-2146233079 > IsTransient=false > Message=The request was aborted: The connection was closed unexpectedly. > Source=System > StackTrace: > at System.Net.ConnectStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) > at System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state) > InnerException: I have to in fact restart service to get proper response again. Above behavior happens only if HttpRequestMessage.Version is set to HttpVersion.Version11 but when HttpVersion.Version10 everything works fine, following is a sample code i created to reproduce same , any insights on why this happens? ``` class Program { static HttpClientHandler handler = new HttpClientHandler{Credentials = CredentialCache.DefaultCredentials}; static void Main() { for (int i = 0; i < 10; i++) { try { Main2().Wait(); } catch (Exception e) { Console.WriteLine(e); } } Console.ReadLine(); } private static async Task Main2() { var client1 = new HttpClient(handler,false); client1.DefaultRequestHeaders.CacheControl = CacheControlHeaderValue.Parse(""no-cache""); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, ""http://localhost/RestFramework/AuditEventService/AuditEvent"") { Content = new StringContent(""sdad""), Version = HttpVersion.Version11 }; request.Content.Headers.ContentType = new MediaTypeHeaderValue(""application/json""); HttpResponseMessage response = null; try { response = await client1.SendAsync(request); // i am expecting a 401 status code, this line cause issue if (!response.IsSuccessStatusCode) { var statusCode = response.StatusCode; throw new Exception(statusCode.ToString()); } } finally { client1.Dispose(); } } ``` my web api service returns a 401 for the request which i am passing, if i put a sleep in my filter code mentioned below everything works fine ,the code for filter looks below- ``` internal class IntegrateWindowsAuthenticationFilter : IActionFilter { /// /// user groups /// public IList UserGroups { get; set; } /// /// user names /// public IList UserNames { get; set; } #region IActionFilter Members /// /// Executes the action filter asynchronous. /// /// The action context. /// The cancellation token. /// The continuation. /// public Task ExecuteActionFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func> continuation) { //Thread.sleep(1000) // this make things work with http 1.1 var output = false; if (UserGroups != null) { foreach (var group in UserGroups) { output = actionContext.RequestContext.Principal.IsInRole(group); if (output) { return continuation(); } } } if (UserNames != null) { foreach (var user in UserNames) { output = actionContext.RequestContext.Principal.Identity.Name .Equals(user, StringComparison.OrdinalIgnoreCase); if (output) { return continuation(); } } } var outcome = new OperationOutcome(); outcome.Issue.Add(new IssueComponent { Details = Constants.UnauthorizedAccess }); return Task.FromResult(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } #endregion #region IFilter Members /// /// Gets a value indicating whether [allow multiple]. /// /// /// true if [allow multiple]; otherwise, false. /// public bool AllowMultiple { get { return false; } } #endregion } ``` " @@ -60,27 +60,27 @@ ID Area Title Description 24694 area-System.Diagnostics [ExcludeFromCodeCoverageAttribute] should be applicable to assemblies Following up on https://github.com/Microsoft/vstest/issues/1050, https://github.com/Microsoft/testfx/issues/248, https://github.com/dotnet/corefx/issues/14488. As of now `System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute` has the following [signature](https://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute(v=vs.110).aspx): ```csharp [AttributeUsageAttribute (AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event, Inherited = false, AllowMultiple = false)] public sealed class ExcludeFromCodeCoverageAttribute : Attribute ``` what doesn't allow to apply it to assemblies. I'd like to have the code like this in every tests project's AssemblyInfo.cs: ```csharp [assembly: ExcludeFromCodeCoverage] ``` I talked to @pvlakshm, a PM on the VS Unit Testing Framework, we agreed this would be a good enhancement which they would pick-up and address once the following API change has been made: ```csharp [AttributeUsageAttribute (AttributeTargets.Assembly | // <-- AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event, Inherited = false, AllowMultiple = false)] public sealed class ExcludeFromCodeCoverageAttribute : Attribute ``` 24697 area-System.IO Remove dead code from System.IO.FileSystem.AccessControl PR addresses issue #17905, project **System.IO.FileSystem.AccessControl**. Removed just two unused string resources. Everything else is constants. 24698 area-Infrastructure "Downloaded dotnet.exe now picking up installed SDK's in ""Program Files""" "(Note this also affects CoreCLR and CoreFxLab - maybe this issue should be in buildtools) ``` c:\dd\CoreFx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\dotnet.exe --info ... Base Path: C:\Program Files\dotnet\sdk\2.0.2\ ... ``` This means that the build on these repos are picking up whatever dogfood that VS wishes on us, and yes, some of them do break minor functionality like ""init-tools.cmd"" Expected: The dotnet tooling in these repos are truly isolated from the machine environment. " -24699 area-System.Collections Set.TryGetValue not-found behavior/docs inconsistent "Either the behavior or the inline documentation is incorrect for SortedSet/HashSet TryGetValue when the item is not found. The code returns default(T) but the inline comments state it should return the original value. I expect this is because the comments are copied from their Immutable counterparts where the original value is returned. TryGetValue not found out value for other classes: Function | actual out value when not found | what docs say the out value will be when not found --------- | ------------- | ------------- SortedSet.TryGetValue | [default(T)](https://github.com/dotnet/corefx/blob/6ad6bce5f9fd1f2d98ea30a049bdfcee3f4d0ed3/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2108) | [original value](https://github.com/dotnet/corefx/blob/6ad6bce5f9fd1f2d98ea30a049bdfcee3f4d0ed3/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2092) HashSet.TryGetValue | [default(T)](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs#L480) | [original value](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs#L461) ImmutableHashSet.TryGetValue | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableHashSet_1.cs#L237) | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableHashSet_1.cs#L219) ImmutableSortedSet.TryGetValue | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.cs#L219) | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.cs#L205) Dictionary | default(T) | default(T) SortedList| default(T) | default(T) SortedDictionary| default(T) | default(T) ""original value"" here refers to the `equalValue` for which we are searching. I expect we want to just fix the comment to match the behavior which this PR aims to do. If we decide else-wise, I will update the PR as necessary. cc: @TylerBrinkley @stephentoub " +24699 area-System.Collections Set.TryGetValue not-found behavior/docs inconsistent "Either the behavior or the inline documentation is incorrect for SortedSet/HashSet TryGetValue when the item is not found. The code returns default(T) but the inline comments state it should return the original value. I expect this is because the comments are copied from their Immutable counterparts where the original value is returned. TryGetValue not found out value for other classes: Function | actual out value when not found | what docs say the out value will be when not found --------- | ------------- | ------------- SortedSet.TryGetValue | [default(T)](https://github.com/dotnet/corefx/blob/6ad6bce5f9fd1f2d98ea30a049bdfcee3f4d0ed3/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2108) | [original value](https://github.com/dotnet/corefx/blob/6ad6bce5f9fd1f2d98ea30a049bdfcee3f4d0ed3/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2092) HashSet.TryGetValue | [default(T)](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs#L480) | [original value](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs#L461) ImmutableHashSet.TryGetValue | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableHashSet_1.cs#L237) | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableHashSet_1.cs#L219) ImmutableSortedSet.TryGetValue | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.cs#L219) | [original value](https://github.com/dotnet/corefx/blob/3143b836af48be68d3b02b45188b134dca25b27c/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.cs#L205) Dictionary | default(T) | default(T) SortedList| default(T) | default(T) SortedDictionary| default(T) | default(T) ""original value"" here refers to the `equalValue` for which we are searching. I expect we want to just fix the comment to match the behavior which this PR aims to do. If we decide else-wise, I will update the PR as necessary. cc: xxx xxx " 24701 area-System.IO Remove dead code from System.IO.FileSystem PR addresses issue #17905, project **System.IO.FileSystem**. Not really much to do. Most of the red things in [diff](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.diff.html) file are: - Classes in `src\Common` folder. - Methods that are in `*.Unix` files, so I am not sure if they are not used on that platform and therefore they can't be removed. -24703 area-Meta [Announcement] [Discussion] Microsoft Security Advisory CVE-2017-8585 : Malformed Culture can cause application crash # Microsoft Security Advisory CVE-2017-8585 ## Malformed Culture can cause application to crash ### Executive Summary Microsoft is releasing this security advisory to provide information about a vulnerability in the public versions of .NET Core 1.0 and 1.1. This advisory also provides guidance on what developers can do to update their applications correctly. Microsoft is aware of a security vulnerability in the public version of .NET Core where a malformed string request could cause an application to crash and lead to a denial of service. System administrators are advised to update their .NET Core runtimes to versions 1.0.7 and 1.1.4. Developers are advised to update their .NET Core SDK to version 1.1.4. ### Mitigation Factors .NET Core 2.0 is not affected by this issue. ,NET Core 1.x applications are only affected if running on Windows 10 or Windows 2016. ### Advisory FAQ #### How do I know if I am affected? Any application running against .NET Core 1.0.6 or lower versions, or 1.1.2 or lower versions is affected. The latest version of the .NET core runtime you have installed in your computer can be listed by running `dotnet --info`. Running that command produces an output similar to the following: ``` .NET Command Line Tools (2.0.2) Product Information: Version: 2.0.2 Commit SHA-1 hash: a04b4bf512 Runtime Environment: OS Name: Windows OS Version: 10.0.16299 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.2\ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d ``` As this command only displays the latest version of the runtime installed (or the version set in the *global.json* file), it may hide the fact that you have a vulnerable runtime. A complete list of runtimes can be discovered by performing a directory listing in the install root directories. The default root directories are listed in the following table: | Operating System | Location | |------------------|-------------------| | Windows | C:\Program Files\dotnet\shared\Microsoft.NETCore.App\ | | macOS | /usr/local/share/dotnet/shared/Microsoft.NETCore.App/ | | [Supported Linux platforms](https://docs.microsoft.com/dotnet/core/linux-prerequisites#supported-linux-versions) | /usr/share/dotnet/shared/Microsoft.NETCore.App/ | Each runtime version is installed in its own directory, where the directory name is the version number. If you don't have a directory for 1.0.7 and 1.1.4, then any applications targeting 1.0 or 1.1 of .NET Core are vulnerable. Also, even if you have a directory for 1.0.7 and 1.1.4 present in your system, if you've deployed [self-contained applications](https://docs.microsoft.com/dotnet/core/deploying/#self-contained-deployments-scd) targeting the impacted versions, these applications are also vulnerable. #### How do I fix my affected application? Applications can be fixed by installing the latest .NET Core runtimes or SDKs. Typically, application servers only have runtime packages installed and developer machines have the SDKs installed. Installers for the runtimes can be downloaded from the [Runtime and SDK download archive](https://github.com/dotnet/core/blob/master/release-notes/download-archive.md). .NET Core 1.1.4 SDK installs both versions 1.0.7 and 1.1.4 of the .NET Core runtime. If you've built a [self-contained application](https://docs.microsoft.com/dotnet/core/deploying/#self-contained-deployments-scd), you must install the new runtime and SDK, recompile your application and redeploy. #### What if the update breaks my application? An application can be pinned to a previous version of the runtime by editing the [*application.runtime.config*](https://github.com/dotnet/cli/blob/ede74b6be1406ba0c086b6d5fc1a5d4eacff1f01/Documentation/specs/runtime-configuration-file.md#appnameruntimeconfigjson) file for that application. Set the framework version to the desired version and the `rollForward` property to `false`. These settings should be treated as a temporary measure and the application updated to work with the patched versions of the framework. Since the *application.runtime.config* file is an optional file, you may need to create one for each application and add it alongside the executable. ### Acknowledgments David Fernandez of [Sidertia Solutions](https://www.sidertia.com/Home) ### External Links [CVE-2017-8585](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8585) [Sidertia blog on their discovery](https://www.sidertia.com/Home/Community/Blog/2017/07/14/Microsoft-fixes-the-CVE-2017-8585-security-vulnerability-discovered-by-Sidertia-Team) _Version 1.1_ _Last Updated 2017-18-10_ +24703 area-Meta [Announcement] [Discussion] Microsoft Security Advisory CVE-2017-8585 : Malformed Culture can cause application crash # Microsoft Security Advisory CVE-2017-8585 ## Malformed Culture can cause application to crash ### Executive Summary Microsoft is releasing this security advisory to provide information about a vulnerability in the public versions of .NET Core 1.0 and 1.1. This advisory also provides guidance on what developers can do to update their applications correctly. Microsoft is aware of a security vulnerability in the public version of .NET Core where a malformed string request could cause an application to crash and lead to a denial of service. System administrators are advised to update their .NET Core runtimes to versions 1.0.7 and 1.1.4. Developers are advised to update their .NET Core SDK to version 1.1.4. ### Mitigation Factors .NET Core 2.0 is not affected by this issue. ,NET Core 1.x applications are only affected if running on Windows 10 or Windows 2016. ### Advisory FAQ #### How do I know if I am affected? Any application running against .NET Core 1.0.6 or lower versions, or 1.1.2 or lower versions is affected. The latest version of the .NET core runtime you have installed in your computer can be listed by running `dotnet --info`. Running that command produces an output similar to the following: ``` .NET Command Line Tools (2.0.2) Product Information: Version: 2.0.2 Commit SHA-1 hash: a04b4bf512 Runtime Environment: OS Name: Windows OS Version: 10.0.16299 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.2\ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d ``` As this command only displays the latest version of the runtime installed (or the version set in the *global.json* file), it may hide the fact that you have a vulnerable runtime. A complete list of runtimes can be discovered by performing a directory listing in the install root directories. The default root directories are listed in the following table: | Operating System | Location | |------------------|-------------------| | Windows | C:\Program Files\dotnet\shared\Microsoft.NETCore.App\ | | macOS | /usr/local/share/dotnet/shared/Microsoft.NETCore.App/ | | [Supported Linux platforms](https://docs.microsoft.com/dotnet/core/linux-prerequisites#supported-linux-versions) | /usr/share/dotnet/shared/Microsoft.NETCore.App/ | Each runtime version is installed in its own directory, where the directory name is the version number. If you don't have a directory for 1.0.7 and 1.1.4, then any applications targeting 1.0 or 1.1 of .NET Core are vulnerable. Also, even if you have a directory for 1.0.7 and 1.1.4 present in your system, if you've deployed [self-contained applications](https://docs.microsoft.com/dotnet/core/deploying/#self-contained-deployments-scd) targeting the impacted versions, these applications are also vulnerable. #### How do I fix my affected application? Applications can be fixed by installing the latest .NET Core runtimes or SDKs. Typically, application servers only have runtime packages installed and developer machines have the SDKs installed. Installers for the runtimes can be downloaded from the [Runtime and SDK download archive](https://github.com/dotnet/core/blob/master/release-notes/download-archive.md). .NET Core 1.1.4 SDK installs both versions 1.0.7 and 1.1.4 of the .NET Core runtime. If you've built a [self-contained application](https://docs.microsoft.com/dotnet/core/deploying/#self-contained-deployments-scd), you must install the new runtime and SDK, recompile your application and redeploy. #### What if the update breaks my application? An application can be pinned to a previous version of the runtime by editing the [*application.runtime.config*](https://github.com/dotnet/cli/blob/ede74b6be1406ba0c086b6d5fc1a5d4eacff1f01/Documentation/specs/runtime-configuration-file.md#appnameruntimeconfigjson) file for that application. Set the framework version to the desired version and the `rollForward` property to `false`. These settings should be treated as a temporary measure and the application updated to work with the patched versions of the framework. Since the *application.runtime.config* file is an optional file, you may need to create one for each application and add it alongside the executable. ### Acknowledgments David Fernandez of [Sidertia Solutions](https://www.sidertia.com/Home) ### External Links [CVE-2017-8585](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8585) [Sidertia blog on their discovery](https://www.sidertia.com/Home/Community/Blog/2017/07/14/Microsoft-fixes-the-CVE-2017-8585-security-vulnerability-discovered-by-Sidertia-Team) _Version 1.1_ _Last Updated 2017-18-10_ 24704 area-System.Diagnostics compatibility consideration for UseShellExecute with Process.Start() "This is fresh start of topic related to #23705 and #24000 At least on Unix ""UseShell"" has standard meaning: shell is used to execute requested command. There are many examples - like Python's popen() or simply difference between execv() and system(). On Windows his has different meaning and implies to open file with default application. Unix implementation was recently updated to match Windows behavior. However that possibly creates backward compatibility problem. 2.0 has been released with using /bin/sh to match traditional Unix experience. Change in behavior can break existing usage of Process.Star() - and it did even in trivial case for corefx tests. /bin/sh is pretty much guarantied to exist on any normal Unix system but new helpers may not. Process.Start(new ProcessStartInfo { UseShellExecute = true, FileName =""ls""}) works with 2.0 but it does not work with current master branch on my system. Further more, Unix users would expect normal shell behavior. Following examples will succeed when running with dotnet 2.0 ``` static void Main(string[] args) { String cmd=""if [ -e /etc/passwd ] ; then echo yes ; else echo no; fi""; var startInfo = new ProcessStartInfo(cmd); startInfo.UseShellExecute = true; startInfo.CreateNoWindow = true; using (Process px = Process.Start(startInfo)) { px.WaitForExit(); Console.WriteLine(""cmd returned {0}"", px.ExitCode); } } ``` One can pass in fragments of shell code with 2.0. ``` test@net-chip:~/process$ dotnet run yes cmd returned 0 ``` another common use case is use if command pipeline and have shell handling it: ``` String cmd=""cat /etc/passwd|grep root""; test@net-chip:~/process$ dotnet run root:x:0:0:root:/root:/bin/bash cmd returned 0 ``` In this case shell will run each command in separate process and it will redirect output from cat to stdin of grep. This is pretty typical use. Last part is use of .profile and shell variables. When used with shell, for example ""echo $HOME"" would expand to home directory. When used without shell, it would be passed in as string. " 24705 area-System.Threading Add method to avoid TaskScheduler.UnobservedTaskException for a given Task Unobserved `Task` exceptions are propagated to the `TaskScheduler.UnobservedTaskException` event. There are cases where we want to be able to ignore the results of a task without triggering that event. For example, we have an extension method, `task.WithTimeout(TimeSpan)` which will throw a `TimeoutException` if a task doesn't complete before a specified time. In this case we want to ignore the results of the original task. Currently we use an extension method to ignore individual tasks: ```C# public static void Ignore(this Task task) { if (task.IsCompleted) { var ignored = task.Exception; } else { IgnoreAsync(task); } async void IgnoreAsync(Task asyncTask) { try { await asyncTask.ConfigureAwait(false); } catch { // Ignored. } } } ``` That method still has a cost, though, and ideally we would like to remove most of that cost. A method inside the framework to ignore the results of a task without needing to register/allocate a continuation would be beneficial here. 24706 area-System.Net Test that matching cookies are found after non-matching cookies Test case for #24368. Adding a new non-matching cookie can cause matching cookies to not be returned. /aaa should return the following cookies because of a prefix match: 1. /aa 2. /a 3. / Adding a /ab cookie will cause it to only return 2/3 of the cookies. https://dotnetfiddle.net/xH5FVi helps show the issue. -24707 area-System.Net NegotiateStreamTest should be improved I bump into this while investigating #24000 - We have cases when tests would claim pass but it did not run. - test it self is trying to install and remove system packages during test execution. That will create reliability problems as well as it is unpleasant for anybody working on shared or production system. It would be better to document prerequisites and run tests when conditions are met. That would also mean checking or updating current CI images so we do not always skip runs due to lack of dependencies. We should also update documentation and explain what is needed for proper execution so anybody from community can successfully run the tests. +24707 area-System.Net NegotiateStreamTest should be improved I bump into this while investigating #24000 - We have cases when tests would claim pass but it did not run. - test it self is trying to install and remove system packages during test execution. That will create reliability problems as well as it is unpleasant for anybody working on shared or production system. It would be better to document prerequisites and run tests when conditions are met. That would also mean checking or updating current CI images so we do not always skip runs due to lack of dependencies. We should also update documentation and explain what is needed for proper execution so anybody from community can successfully run the tests. 24709 area-System.ComponentModel Question about BindingList Hello, I have a question about `BindingList`. Is there any particular reason that the `RaiseListChangedEvents` property is not exposed via an interface like `IBindingList` or a new one called `IRaiseListChangedEvents`? I just ran into this today during work where I had a dynamic type created via `TypeBuilder` and an instance of `BindingList` where `T` was this dynamic type. Before adding a bunch of items, I wanted to turn off the list changed notifications and turn them back on after and also call a `ResetBindings`. So because I have a dynamic type I can't cast my list to `BindingList`, because I have no information about `T` during the writing of the program. If `BindingList` implements a new interface `IRaiseListChangedEvents`, then I can just cast the collection to that and access the property. Same goes for `ResetBindings`. I ended up creating an empty class deriving from `BindingList`, implementing a new interface with the needed properties/methods so I can access them even if `T` is dynamic and not known at compile time. What is the reason of not exposing these members as a new or as part of the existing interfaces? Thanks in advance. 24711 area-System.Collections "Fix for (#24628) - System.Collections.Tests.Perf_ArrayList/Indexer failed with ""System.OutOfMemoryException""" Fix for (#24628) - Optimizing System.Collections.Tests.Perf_ArrayListTests tests which were using over 2GB of memory. -24712 area-System.Net Test failure: System.Net.Http.Functional.Tests.ResponseStreamTest / ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException ## Type of failures ### An error occurred while sending the request Failure [20171215.09](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)): ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. at System.Net.Http.HttpClient.d__59.MoveNext() in E:\A\_work\1212\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\1212\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 247 --- End of stack trace from previous location where exception was thrown --- ``` ### No exception was thrown Failure [20180118.04](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge)): ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: (No exception was thrown) ``` ## History of failures Day | Build | OS | Details -- | -- | -- | -- 5/10 | 20170510.02 | Win10 | 5/17 | 20170517.01 | Win10 | 10/18 | 20171018.01 | Win7 | 11/15 | 20171115.01 | Win7 | 11/28 | 20171128.07 | Win7 | 12/1 | 20171201.03 | Win7 | 12/4 | 20171204.01 | Win7 | 12/5 | 20171215.06 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 12/15 | 20171215.09 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official%7E2Fcorefx%7E2Fmaster%7E2F/type/test%7E2Ffunctional%7E2Fcli%7E2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest%7E2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 12/16 | 20171216.06 | Win8.1 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.06/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 1/6 | 20180106.01 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180106.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 1/11 | 20180111.02 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180111.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 1/18 | 20180118.04 | Win7 | No exception was thrown - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge)) 1/25 | 20180125.01 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180125.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 1/29 | 20180129.05 | Win7 | No exception was thrown - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180129.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 2/6 | 20180206.04 | Win7 | only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.04/workItem/System.Net.Http.Functional.Tests/wilogs) 3/19 | 20180319.06 | Win10 | 3/22 | 20180322.01 | Win7 | ## Failure details Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType: ContentLength, transferError: ContentLengthTooLarge)` has failed. ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Build : Master - 20171018.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171018.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge) +24712 area-System.Net Test failure: System.Net.Http.Functional.Tests.ResponseStreamTest / ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException ## Type of failures ### An error occurred while sending the request Failure [20171215.09](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)): ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. at System.Net.Http.HttpClient.d__59.MoveNext() in E:\A\_work\1212\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\1212\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 247 --- End of stack trace from previous location where exception was thrown --- ``` ### No exception was thrown Failure [20180118.04](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge)): ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: (No exception was thrown) ``` ## History of failures Day | Build | OS | Details -- | -- | -- | -- 5/10 | 20170510.02 | Win10 | 5/17 | 20170517.01 | Win10 | 10/18 | 20171018.01 | Win7 | 11/15 | 20171115.01 | Win7 | 11/28 | 20171128.07 | Win7 | 12/1 | 20171201.03 | Win7 | 12/4 | 20171204.01 | Win7 | 12/5 | 20171215.06 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 12/15 | 20171215.09 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official%7E2Fcorefx%7E2Fmaster%7E2F/type/test%7E2Ffunctional%7E2Fcli%7E2F/build/20171215.09/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest%7E2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 12/16 | 20171216.06 | Win8.1 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.06/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 1/6 | 20180106.01 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180106.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 1/11 | 20180111.02 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180111.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 1/18 | 20180118.04 | Win7 | No exception was thrown - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge)) 1/25 | 20180125.01 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180125.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20MissingChunkTerminator)) 1/29 | 20180129.05 | Win7 | No exception was thrown - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180129.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20Chunked,%20transferError:%20ChunkSizeTooLarge)) 2/6 | 20180206.04 | Win7 | only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.04/workItem/System.Net.Http.Functional.Tests/wilogs) 3/19 | 20180319.06 | Win10 | 3/22 | 20180322.01 | Win7 | ## Failure details Opened on behalf of xxx The test `System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType: ContentLength, transferError: ContentLengthTooLarge)` has failed. ``` Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Build : Master - 20171018.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171018.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge) 24713 area-System.Net Status line handling differs between HttpClientHandler implementations Some status lines that cause client requests to fail on .NET Core on Windows are not failing on .NET Framework, and vice versa. Other status lines are failing on .NET Core on Windows and not failing on .NET Core on Linux. See HttpProtocolTests tests for details. -24714 area-Infrastructure update parameter parsing to be more flexible and be closer to coreclr and native build allow keyword variants with and without leading '-'. e.g. both 'release' and '-release' are valid. -24722 area-System.Threading Segfault in coreclr due to potential race with initializing thread statics on Linux "Run the test ```System.Net.Security.Tests.SslStream_StreamToStream_Alpn_Success``` for repro. On initial debugging, this is the call stack from the process, ``` * thread #15: tid = 34598, 0x00007ffff6e05c37 libc.so.6`gsignal + 55, name = 'dotnet', stop reason = signal SIGABRT * frame #0: 0x00007ffff6e05c37 libc.so.6`gsignal + 55 frame #1: 0x00007ffff6e09028 libc.so.6`abort + 328 frame #2: 0x00007ffff61aafd3 libcoreclr.so`::PROCAbort() + 19 at process.cpp:3046 frame #3: 0x00007ffff61a6a56 libcoreclr.so`PROCEndProcess(hProcess=0x00000000ffffff01, uExitCode=123456789, bTerminateUnconditionally=YES) + 1222 at process.cpp:1394 frame #4: 0x00007ffff61a6b55 libcoreclr.so`::TerminateProcess(hProcess=0x00000000ffffff01, uExitCode=123456789) + 181 at process.cpp:1310 frame #5: 0x00007ffff5834a6f libcoreclr.so`TerminateOnAssert() + 31 at debug.cpp:183 frame #6: 0x00007ffff583590c libcoreclr.so`::_DbgBreakCheck(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"", fConstrained=NO) + 2428 at debug.cpp:436 frame #7: 0x00007ffff5835f14 libcoreclr.so`_DbgBreakCheckNoThrow(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"", fConstrained=NO) + 180 at debug.cpp:548 frame #8: 0x00007ffff5836404 libcoreclr.so`::DbgAssertDialog(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"") + 260 at debug.cpp:735 frame #9: 0x00007ffff5884c76 libcoreclr.so`ArrayBase::GetDataPtrOffset(pMT=0x00007fff7ce8a018) + 54 at object.inl:209 frame #10: 0x00007ffff5883a63 libcoreclr.so`ArrayBase::GetDataPtr(this=0x00007fff54e6a088, inGC=NO) const + 115 at object.h:832 frame #11: 0x00007ffff59c3220 libcoreclr.so`ThreadLocalModule::GetPrecomputedGCStaticsBasePointer(this=0x00007fff3800c530) + 160 at threadstatics.h:128 frame #12: 0x00007ffff5ad0047 libcoreclr.so`JIT_GetSharedGCThreadStaticBase(moduleDomainID=140735268991016, dwClassDomainID=532) + 167 at jithelpers.cpp:1911 frame #13: 0x00007fff7ca6162c frame #14: 0x00007fff7ca61c29 frame #15: 0x00007fff7cbbd000 frame #16: 0x00007ffff5cf8d0b libcoreclr.so`CallDescrWorkerInternal + 124 at unixasmmacrosamd64.inc:880 frame #17: 0x00007ffff5a1e09a libcoreclr.so`CallDescrWorkerWithHandler(pCallDescrData=0x00007fff78f2f2d8, fCriticalCall=NO) + 490 at callhelpers.cpp:78 frame #18: 0x00007ffff5a1f7ee libcoreclr.so`MethodDescCallSite::CallTargetWorker(this=0x00007fff78f2f3c0, pArguments=0x0000000000000000, pReturnValue=0x00007fff78f2f358, cbReturnValue=8) + 2862 at callhelpers.cpp:645 frame #19: 0x00007ffff5bb238a libcoreclr.so`MethodDescCallSite::Call_RetBool(this=0x00007fff78f2f3c0, pArguments=0x0000000000000000) + 202 at callhelpers.h:433 frame #20: 0x00007ffff5e5ace8 libcoreclr.so`QueueUserWorkItemManagedCallback(pArg=0x00007fff78f2fd56) + 200 at comthreadpool.cpp:472 frame #21: 0x00007ffff59b83be libcoreclr.so`ManagedThreadBase_DispatchInner(pCallState=0x00007fff78f2f880) + 206 at threads.cpp:9186 frame #22: 0x00007ffff59bd945 libcoreclr.so`ManagedThreadBase_DispatchMiddle(pCallState=0x00007fff78f2f880) + 149 at threads.cpp:9237 frame #23: 0x00007ffff59bd77d libcoreclr.so`ManagedThreadBase_DispatchOuter(this=0x00007fff78f2f758, pParam=0x00007fff78f2f810)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const::{lambda(Param*)#1}::operator()(Param*) const + 29 at threads.cpp:9475 frame #24: 0x00007ffff59bd57f libcoreclr.so`ManagedThreadBase_DispatchOuter(this=0x00007fff78f2f7e8, pArgs=0x00007fff78f2f7f0)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const + 111 at threads.cpp:9477 frame #25: 0x00007ffff59b8049 libcoreclr.so`ManagedThreadBase_DispatchOuter(pCallState=0x00007fff78f2f880) + 233 at threads.cpp:9514 frame #26: 0x00007ffff59b81d4 libcoreclr.so`ManagedThreadBase_FullTransitionWithAD(pAppDomain=(m_dwId = 1), pTarget=(libcoreclr.so`QueueUserWorkItemManagedCallback(void*) at comthreadpool.cpp:456), args=0x00007fff78f2fd56, filterType=ThreadPoolThread)(void*), void*, UnhandledExceptionLocation) + 84 at threads.cpp:9535 frame #27: 0x00007ffff59b823b libcoreclr.so`ManagedThreadBase::ThreadPool(pAppDomain=(m_dwId = 1), pTarget=(libcoreclr.so`QueueUserWorkItemManagedCallback(void*) at comthreadpool.cpp:456), args=0x00007fff78f2fd56)(void*), void*) + 59 at threads.cpp:9577 frame #28: 0x00007ffff5e1ccfb libcoreclr.so`ManagedPerAppDomainTPCount::DispatchWorkItem(this=0x00000000006b64c0, foundWork=0x00007fff78f2fd57, wasNotRecalled=0x00007fff78f2fd56) + 251 at threadpoolrequest.cpp:754 frame #29: 0x00007ffff59fcf0b libcoreclr.so`ThreadpoolMgr::ExecuteWorkRequest(foundWork=0x00007fff78f2fd57, wasNotRecalled=0x00007fff78f2fd56) + 203 at win32threadpool.cpp:1558 frame #30: 0x00007ffff59fe029 libcoreclr.so`ThreadpoolMgr::WorkerThreadStart(lpArgs=0x0000000000000000) + 937 at win32threadpool.cpp:2022 frame #31: 0x00007ffff59aa267 libcoreclr.so`Thread::intermediateThreadProc(arg=0x00007fff3401f540) + 167 at threads.cpp:2583 frame #32: 0x00007ffff61b1edd libcoreclr.so`CorUnix::CPalThread::ThreadEntry(pvParam=0x00007fff34020870) + 1677 at thread.cpp:1684 frame #33: 0x00007ffff79c0184 libpthread.so.0`start_thread + 196 frame #34: 0x00007ffff6eccffd libc.so.6`clone + 109 ``` and it looks like the assert is failing, as it is expecting an array object, instead receiving a Thread object. ``` frame #12: 0x00007ffff5ad0047 libcoreclr.so`JIT_GetSharedGCThreadStaticBase(moduleDomainID=140735268991016, dwClassDomainID=532) + 167 at jithelpers.cpp:1911 1908 // If the TLM has been allocated and the class has been marked as initialized, 1909 // get the pointer to the GC statics base and return 1910 if (pThreadLocalModule != NULL && pThreadLocalModule->IsPrecomputedClassInitialized(dwClassDomainID)) -> 1911 return (void*)pThreadLocalModule->GetPrecomputedGCStaticsBasePointer(); 1912 1913 // If the TLM was not allocated or if the class was not marked as initialized 1914 // then we have to go through the slow path (lldb) p pThreadLocalModule (ThreadLocalModule *) $0 = 0x00007fff3800c530 (lldb) p pThreadLocalModule->m_pGCStatics (OBJECTHANDLE) $1 = 0x00007ffff7fd10e0 (lldb) frame select 9 frame #9: 0x00007ffff5884c76 libcoreclr.so`ArrayBase::GetDataPtrOffset(pMT=0x00007fff7ce8a018) + 54 at object.inl:209 206 LIMITED_METHOD_CONTRACT; 207 SUPPORTS_DAC; 208 #if !defined(DACCESS_COMPILE) -> 209 _ASSERTE(pMT->IsArray()); 210 #endif // DACCESS_COMPILE 211 // The -sizeof(ObjHeader) is because of the sync block, which is before ""this"" 212 return pMT->GetBaseSize() - sizeof(ObjHeader); (lldb) dumpmt pMT EEClass: 00007FFF7BD76900 Module: 00007FFF7BC90400 Name: System.Threading.Thread mdToken: 000000000200020F File: /home/lasekar/corefx/bin/testhost/netcoreapp-Linux-Debug-x64/shared/Microsoft.NETCore.App/9.9.9/System.Private.CoreLib.dll BaseSize: 0x50 ComponentSize: 0x0 Slots in VTable: 44 Number of IFaces in IFaceMap: 0 ``` cc @janvorli @jkotas " -24723 area-System.Security Fix Rijndael IV/Blocksize bug resolves https://github.com/dotnet/corefx/issues/24662 cc: @bartonjs @gabor182 +24714 area-Infrastructure update parameter parsing to be more flexible and be closer to coreclr and native build allow keyword variants with and without leading '-'. e.g. both 'release' and '-release' are valid. +24722 area-System.Threading Segfault in coreclr due to potential race with initializing thread statics on Linux "Run the test ```System.Net.Security.Tests.SslStream_StreamToStream_Alpn_Success``` for repro. On initial debugging, this is the call stack from the process, ``` * thread #15: tid = 34598, 0x00007ffff6e05c37 libc.so.6`gsignal + 55, name = 'dotnet', stop reason = signal SIGABRT * frame #0: 0x00007ffff6e05c37 libc.so.6`gsignal + 55 frame #1: 0x00007ffff6e09028 libc.so.6`abort + 328 frame #2: 0x00007ffff61aafd3 libcoreclr.so`::PROCAbort() + 19 at process.cpp:3046 frame #3: 0x00007ffff61a6a56 libcoreclr.so`PROCEndProcess(hProcess=0x00000000ffffff01, uExitCode=123456789, bTerminateUnconditionally=YES) + 1222 at process.cpp:1394 frame #4: 0x00007ffff61a6b55 libcoreclr.so`::TerminateProcess(hProcess=0x00000000ffffff01, uExitCode=123456789) + 181 at process.cpp:1310 frame #5: 0x00007ffff5834a6f libcoreclr.so`TerminateOnAssert() + 31 at debug.cpp:183 frame #6: 0x00007ffff583590c libcoreclr.so`::_DbgBreakCheck(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"", fConstrained=NO) + 2428 at debug.cpp:436 frame #7: 0x00007ffff5835f14 libcoreclr.so`_DbgBreakCheckNoThrow(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"", fConstrained=NO) + 180 at debug.cpp:548 frame #8: 0x00007ffff5836404 libcoreclr.so`::DbgAssertDialog(szFile=""/home/lasekar/coreclr/src/vm/object.inl"", iLine=209, szExpr=""pMT->IsArray()"") + 260 at debug.cpp:735 frame #9: 0x00007ffff5884c76 libcoreclr.so`ArrayBase::GetDataPtrOffset(pMT=0x00007fff7ce8a018) + 54 at object.inl:209 frame #10: 0x00007ffff5883a63 libcoreclr.so`ArrayBase::GetDataPtr(this=0x00007fff54e6a088, inGC=NO) const + 115 at object.h:832 frame #11: 0x00007ffff59c3220 libcoreclr.so`ThreadLocalModule::GetPrecomputedGCStaticsBasePointer(this=0x00007fff3800c530) + 160 at threadstatics.h:128 frame #12: 0x00007ffff5ad0047 libcoreclr.so`JIT_GetSharedGCThreadStaticBase(moduleDomainID=140735268991016, dwClassDomainID=532) + 167 at jithelpers.cpp:1911 frame #13: 0x00007fff7ca6162c frame #14: 0x00007fff7ca61c29 frame #15: 0x00007fff7cbbd000 frame #16: 0x00007ffff5cf8d0b libcoreclr.so`CallDescrWorkerInternal + 124 at unixasmmacrosamd64.inc:880 frame #17: 0x00007ffff5a1e09a libcoreclr.so`CallDescrWorkerWithHandler(pCallDescrData=0x00007fff78f2f2d8, fCriticalCall=NO) + 490 at callhelpers.cpp:78 frame #18: 0x00007ffff5a1f7ee libcoreclr.so`MethodDescCallSite::CallTargetWorker(this=0x00007fff78f2f3c0, pArguments=0x0000000000000000, pReturnValue=0x00007fff78f2f358, cbReturnValue=8) + 2862 at callhelpers.cpp:645 frame #19: 0x00007ffff5bb238a libcoreclr.so`MethodDescCallSite::Call_RetBool(this=0x00007fff78f2f3c0, pArguments=0x0000000000000000) + 202 at callhelpers.h:433 frame #20: 0x00007ffff5e5ace8 libcoreclr.so`QueueUserWorkItemManagedCallback(pArg=0x00007fff78f2fd56) + 200 at comthreadpool.cpp:472 frame #21: 0x00007ffff59b83be libcoreclr.so`ManagedThreadBase_DispatchInner(pCallState=0x00007fff78f2f880) + 206 at threads.cpp:9186 frame #22: 0x00007ffff59bd945 libcoreclr.so`ManagedThreadBase_DispatchMiddle(pCallState=0x00007fff78f2f880) + 149 at threads.cpp:9237 frame #23: 0x00007ffff59bd77d libcoreclr.so`ManagedThreadBase_DispatchOuter(this=0x00007fff78f2f758, pParam=0x00007fff78f2f810)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const::{lambda(Param*)#1}::operator()(Param*) const + 29 at threads.cpp:9475 frame #24: 0x00007ffff59bd57f libcoreclr.so`ManagedThreadBase_DispatchOuter(this=0x00007fff78f2f7e8, pArgs=0x00007fff78f2f7f0)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const + 111 at threads.cpp:9477 frame #25: 0x00007ffff59b8049 libcoreclr.so`ManagedThreadBase_DispatchOuter(pCallState=0x00007fff78f2f880) + 233 at threads.cpp:9514 frame #26: 0x00007ffff59b81d4 libcoreclr.so`ManagedThreadBase_FullTransitionWithAD(pAppDomain=(m_dwId = 1), pTarget=(libcoreclr.so`QueueUserWorkItemManagedCallback(void*) at comthreadpool.cpp:456), args=0x00007fff78f2fd56, filterType=ThreadPoolThread)(void*), void*, UnhandledExceptionLocation) + 84 at threads.cpp:9535 frame #27: 0x00007ffff59b823b libcoreclr.so`ManagedThreadBase::ThreadPool(pAppDomain=(m_dwId = 1), pTarget=(libcoreclr.so`QueueUserWorkItemManagedCallback(void*) at comthreadpool.cpp:456), args=0x00007fff78f2fd56)(void*), void*) + 59 at threads.cpp:9577 frame #28: 0x00007ffff5e1ccfb libcoreclr.so`ManagedPerAppDomainTPCount::DispatchWorkItem(this=0x00000000006b64c0, foundWork=0x00007fff78f2fd57, wasNotRecalled=0x00007fff78f2fd56) + 251 at threadpoolrequest.cpp:754 frame #29: 0x00007ffff59fcf0b libcoreclr.so`ThreadpoolMgr::ExecuteWorkRequest(foundWork=0x00007fff78f2fd57, wasNotRecalled=0x00007fff78f2fd56) + 203 at win32threadpool.cpp:1558 frame #30: 0x00007ffff59fe029 libcoreclr.so`ThreadpoolMgr::WorkerThreadStart(lpArgs=0x0000000000000000) + 937 at win32threadpool.cpp:2022 frame #31: 0x00007ffff59aa267 libcoreclr.so`Thread::intermediateThreadProc(arg=0x00007fff3401f540) + 167 at threads.cpp:2583 frame #32: 0x00007ffff61b1edd libcoreclr.so`CorUnix::CPalThread::ThreadEntry(pvParam=0x00007fff34020870) + 1677 at thread.cpp:1684 frame #33: 0x00007ffff79c0184 libpthread.so.0`start_thread + 196 frame #34: 0x00007ffff6eccffd libc.so.6`clone + 109 ``` and it looks like the assert is failing, as it is expecting an array object, instead receiving a Thread object. ``` frame #12: 0x00007ffff5ad0047 libcoreclr.so`JIT_GetSharedGCThreadStaticBase(moduleDomainID=140735268991016, dwClassDomainID=532) + 167 at jithelpers.cpp:1911 1908 // If the TLM has been allocated and the class has been marked as initialized, 1909 // get the pointer to the GC statics base and return 1910 if (pThreadLocalModule != NULL && pThreadLocalModule->IsPrecomputedClassInitialized(dwClassDomainID)) -> 1911 return (void*)pThreadLocalModule->GetPrecomputedGCStaticsBasePointer(); 1912 1913 // If the TLM was not allocated or if the class was not marked as initialized 1914 // then we have to go through the slow path (lldb) p pThreadLocalModule (ThreadLocalModule *) $0 = 0x00007fff3800c530 (lldb) p pThreadLocalModule->m_pGCStatics (OBJECTHANDLE) $1 = 0x00007ffff7fd10e0 (lldb) frame select 9 frame #9: 0x00007ffff5884c76 libcoreclr.so`ArrayBase::GetDataPtrOffset(pMT=0x00007fff7ce8a018) + 54 at object.inl:209 206 LIMITED_METHOD_CONTRACT; 207 SUPPORTS_DAC; 208 #if !defined(DACCESS_COMPILE) -> 209 _ASSERTE(pMT->IsArray()); 210 #endif // DACCESS_COMPILE 211 // The -sizeof(ObjHeader) is because of the sync block, which is before ""this"" 212 return pMT->GetBaseSize() - sizeof(ObjHeader); (lldb) dumpmt pMT EEClass: 00007FFF7BD76900 Module: 00007FFF7BC90400 Name: System.Threading.Thread mdToken: 000000000200020F File: /home/lasekar/corefx/bin/testhost/netcoreapp-Linux-Debug-x64/shared/Microsoft.NETCore.App/9.9.9/System.Private.CoreLib.dll BaseSize: 0x50 ComponentSize: 0x0 Slots in VTable: 44 Number of IFaces in IFaceMap: 0 ``` cc xxx xxx " +24723 area-System.Security Fix Rijndael IV/Blocksize bug resolves https://github.com/dotnet/corefx/issues/24662 cc: xxx @gabor182 24726 area-System.Runtime Question: How are unmanaged code libraries loaded as SafeHandles? "**How are C++ libraries loaded into SafeHandle() classes in .Net Core on Linux (or any platform)?** I am attempting to port an application to .Net Core. The application makes external calls to a C++ library. Before doing so, it loads the library into a SafeHandle. Windows platform: ``` [DllImport(""Kernel32"", CharSet = CharSet.Auto, BestFitMapping = false, SetLastError = true)] private static extern SafeLibraryHandle LoadLibrary(string fileName); ``` Posix platform (via Mono): ``` [DllImport(__Internal, CallingConvention = CCCdecl)] private static extern SafeLibraryHandle dlopen(IntPtr filename, int flags); ``` The class ""SafeLibraryHandle"" inherits from Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid. (The SafeHandleZeroOrMinusOneIsInvalid base class was added in .Net Core 2.0.) The Kernel32 LoadLibrary() works as expected when running in .Net Core on Windows. When running on Linux, the Mono method is called and fails as expected because there is no __Internal library available. From what I've found, Mono wraps the [Linux dlopen() command](http://man7.org/linux/man-pages/man3/dlopen.3.html) like [this](https://github.com/mono/mono/blob/master/libgc/gc_dlopen.c). I'm rather unfamiliar with loading/using unmanaged code. From what I can tell, the purpose of these SafeHandle classes is to load the library files into memory and turn them into disposable types. Since the SafeHandle base class exists in .Net Standard and is used in .Net Core, it seems like there should be way to load libraries on any platform. **So how should C++ libraries be loaded into SafeHandle() classes in .Net Core on Linux?**" -24727 area-System.Net [release/2.0.0] Port SmtpClient fixes to 2.0 cc @stephentoub Fixes #24485 Port of #24536 to release/2.0.0 branch +24727 area-System.Net [release/2.0.0] Port SmtpClient fixes to 2.0 cc xxx Fixes #24485 Port of #24536 to release/2.0.0 branch 24728 area-System.IO Rename new Stream.Read/Write{Async} Span/Memory arguments to buffer We'd previously decided to name these source/destination, but we also have an overriding principle that we should adhere to names used in existing overloads if possible, and we should only use source/destination to help in cases where we need to make the direction clear. Thus we should update the names in these new overloads before we ship them. -24730 area-Infrastructure Reset list for 2.0.4 servicing cc: @weshaggard +24730 area-Infrastructure Reset list for 2.0.4 servicing cc: @weshaggard 24732 area-Meta Replace 'enlistment' with 'repo' in a few places "Enlistment is a MS-internal term from Source Depot days for what in today's git world is now commonly called a ""repo"". Updating this in a few places to avoid confusing compiler errors. " 24735 area-System.Net Remove dead code from System.Net.Http PR addresses issue #17905, project **System.Net.Http**. -24738 area-System.ComponentModel Want features for data annotation _From @amitsaini12345 on October 14, 2017 14:21_ Please bring features to share common data annotations between each entity or model. I will be no need to define separate separate data annotations for each properties of each entity. It would be more easy and bring code reusablity more if one can declare common data annotations of different properties because we see that common data annotation is like max length 50, int, required etc. Are used to once and common for all entities. _Copied from original issue: aspnet/Mvc#6955_ +24738 area-System.ComponentModel Want features for data annotation _From xxx on October 14, 2017 14:21_ Please bring features to share common data annotations between each entity or model. I will be no need to define separate separate data annotations for each properties of each entity. It would be more easy and bring code reusablity more if one can declare common data annotations of different properties because we see that common data annotation is like max length 50, int, required etc. Are used to once and common for all entities. _Copied from original issue: aspnet/Mvc#6955_ 24739 area-Infrastructure Engineering System Epic This Epic is to track planned engineering work specific to the CoreFX repo. (The actual work may be in part in the BuildTools repo) Like all our Epics in order to see the child work items you must have the free [Zenhub browser plugin ](https://www.zenhub.com/) enabled. 24741 area-Meta Microservices and Cloud Epic This Epic is to track work we are doing in CoreFX to support ASP.NET Core. Like all our Epics in order to see the child work items you must have the free [Zenhub browser plugin ](https://www.zenhub.com/) enabled. 24742 area-System.Net Networking Epic This Epic is to track work we are doing in CoreFX for Networking for the next release. Like all our Epics in order to see the child work items you must have the free [Zenhub browser plugin ](https://www.zenhub.com/) enabled. @@ -93,50 +93,50 @@ ID Area Title Description 24750 area-Meta Linux/Windows Parity Epic This Epic covers work to address places where Linux support is behind Windows support, and also potentially any Linux-specific features we add in CoreFX for this release. 24751 area-Meta Customer adoption Epic This Epic covers work we are doing in CoreFX to make it easier for existing .NET Framework customers to use .NET Core. For example, the recently announced portability package. It also covers outreach to NuGet package owners to help them repackage/support .NET Standard 2.0. Like all our Epics in order to see the child work items you must have the free [Zenhub browser plugin ](https://www.zenhub.com/) enabled. 24753 area-System.IO System.IO.IOException: The system cannot find message text for message number 0x%1 in the message file for %2\r\n Hi It seems there is bug in the way exception messages are looked up. I'm getting the following exception when trying to move a file: > System.IO.IOException: The system cannot find message text for message number 0x%1 in the message file for %2\r\n at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath)\r\n at System.IO.File.Move(String sourceFileName, String destFileName) The exception seems to materialize from the call to Win32Marshal.GetExceptionForWin32Error in [System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath)](https://github.com/dotnet/corefx/blob/e791e8b7a4f1e4d6ff5b4295fad04a6c9f65e909/src/System.IO.FileSystem/src/System/IO/Win32FileSystem.cs#L381) Regards -24754 area-System.IO Dev Center Certification Fails for Microsoft.NETCore.UniversalWindowsPlatform 6.0.1 @EdiWang reported this here: https://github.com/Microsoft/dotnet/issues/528 **Steps to Reproducte:** 1. Upgrade UWP's nuget package to Microsoft.NETCore.UniversalWindowsPlatform 6.0.1 3. Target 16299 for both target and min version. 4. Generate an app package to upload to store **Actual Behaviour:** Certification Failed > PI ClearCommBreak in kernel32.dll is not supported for this application type. System.IO.Ports.dll calls this API. > API ClearCommError in kernel32.dll is not supported for this application type. System.IO.Ports.dll calls this API. > .... etc. **Workaround** Downgrade the package to 5.4.1 will fix the problem. **Note** I don't know if the dev center is not ready for verify 6.x uwp package, or it is the package itself have problem? FYI the question on MSDN forum https://social.msdn.microsoft.com/Forums/en-US/b7355d61-cbf9-42e6-a9eb-44ffa144aa1f/rs31709certification-failure-due-to-unsupported-apis-after-upgrading-to-16299-sdk?forum=wpsubmit -24755 area-System.ComponentModel Parse CultureInfo no longer supported in .NET Core "@viktor-morin commented on [Thu Oct 19 2017](https://github.com/dotnet/core/issues/1035) Hi! I reported an error using Newtonsoft.Json where I recieved that the error was in .NET Core and not Newtonsoft.Json itself. Copy paste the issue here below: We are now changing to .NET Core and we get following error when trying to parse a following class: `Dictionary` > ArgumentException: Could not cast or convert from System.String to System.Globalization.CultureInfo. > Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(object value, Type initialType, Type targetType) > JsonSerializationException: Error converting value ""en-US"" to type 'System.Globalization.CultureInfo'. Path 'Name.en-US', line 1, position 17. > Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, object value, CultureInfo culture, JsonContract contract, Type targetType) > JsonSerializationException: Could not convert string 'en-US' to dictionary key type 'System.Globalization.CultureInfo'. Create a TypeConverter to convert from the string to the key type object. Path 'Name.en-US', line 1, position 17. > Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, string id) This is working in .NET Framwork. Link to original post: [https://github.com/JamesNK/Newtonsoft.Json/issues/1457](https://github.com/JamesNK/Newtonsoft.Json/issues/1457) [@danmosemsft edited to make link clickable]" +24754 area-System.IO Dev Center Certification Fails for Microsoft.NETCore.UniversalWindowsPlatform 6.0.1 xxx reported this here: https://github.com/Microsoft/dotnet/issues/528 **Steps to Reproducte:** 1. Upgrade UWP's nuget package to Microsoft.NETCore.UniversalWindowsPlatform 6.0.1 3. Target 16299 for both target and min version. 4. Generate an app package to upload to store **Actual Behaviour:** Certification Failed > PI ClearCommBreak in kernel32.dll is not supported for this application type. System.IO.Ports.dll calls this API. > API ClearCommError in kernel32.dll is not supported for this application type. System.IO.Ports.dll calls this API. > .... etc. **Workaround** Downgrade the package to 5.4.1 will fix the problem. **Note** I don't know if the dev center is not ready for verify 6.x uwp package, or it is the package itself have problem? FYI the question on MSDN forum https://social.msdn.microsoft.com/Forums/en-US/b7355d61-cbf9-42e6-a9eb-44ffa144aa1f/rs31709certification-failure-due-to-unsupported-apis-after-upgrading-to-16299-sdk?forum=wpsubmit +24755 area-System.ComponentModel Parse CultureInfo no longer supported in .NET Core "@viktor-morin commented on [Thu Oct 19 2017](https://github.com/dotnet/core/issues/1035) Hi! I reported an error using Newtonsoft.Json where I recieved that the error was in .NET Core and not Newtonsoft.Json itself. Copy paste the issue here below: We are now changing to .NET Core and we get following error when trying to parse a following class: `Dictionary` > ArgumentException: Could not cast or convert from System.String to System.Globalization.CultureInfo. > Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(object value, Type initialType, Type targetType) > JsonSerializationException: Error converting value ""en-US"" to type 'System.Globalization.CultureInfo'. Path 'Name.en-US', line 1, position 17. > Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, object value, CultureInfo culture, JsonContract contract, Type targetType) > JsonSerializationException: Could not convert string 'en-US' to dictionary key type 'System.Globalization.CultureInfo'. Create a TypeConverter to convert from the string to the key type object. Path 'Name.en-US', line 1, position 17. > Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, string id) This is working in .NET Framwork. Link to original post: [https://github.com/JamesNK/Newtonsoft.Json/issues/1457](https://github.com/JamesNK/Newtonsoft.Json/issues/1457) [xxx edited to make link clickable]" 24756 area-System.Runtime Port System.Runtime.Caching to .NET Core Please do not merge (yet) Contributes to #14529 24757 area-System.Diagnostics Markdown Format was Erasing Information The markdown symbol pipe was creating a cell making the content that had a pipe not readable. -24759 area-System.Net Create aggressive read/write concurrency test for SslStream https://github.com/dotnet/corefx/issues/24142#issuecomment-330671855 has identified that we don't work well on macOS with the 2.0.0 product (in... some... circumstances?) when an async read is blocked-running while a write writes to the same SslStream object. Since the scenario is one that we find virtuous, we should have a test to ensure that once the macOS version is fixed that it doesn't regress (and that the other platforms are meeting the guarantee and not regressing, either). (cc @karelz @Priya91 @wfurt) +24759 area-System.Net Create aggressive read/write concurrency test for SslStream https://github.com/dotnet/corefx/issues/24142#issuecomment-330671855 has identified that we don't work well on macOS with the 2.0.0 product (in... some... circumstances?) when an async read is blocked-running while a write writes to the same SslStream object. Since the scenario is one that we find virtuous, we should have a test to ensure that once the macOS version is fixed that it doesn't regress (and that the other platforms are meeting the guarantee and not regressing, either). (cc xxx xxx @wfurt) 24761 area-Meta Machine Learning Epic This Epic is to track work in CoreFx for the ML scenario. We expect this to principally include introducing a Tensor exchange type. Like all our Epics in order to see the child work items you must have the free [Zenhub browser plugin ](https://www.zenhub.com/) enabled. 24763 area-System.Collections "Tests under ""System.Collections.Tests"" failed with ""Exit code was 131 but it should have been 42""" Failed tests: System.Collections.Tests.SortedListTests.Item_Get_DifferentCulture System.Collections.Tests.CaseInsensitiveComparerTests.DefaultInvariant_Compare System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Default_Compare_TurkishI System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Ctor_Empty_ChangeCurrentCulture_GetHashCodeCompare System.Collections.Tests.HashtableTests.Ctor_IDictionary_IEqualityComparer System.Collections.Tests.HashtableTests.Ctor_IDictionary_Int_IEqualityComparer System.Collections.Tests.HashtableTests.Ctor_IEqualityComparer System.Collections.Tests.HashtableTests.Ctor_Int_IEqualityComparer System.Collections.Tests.HashtableTests.Ctor_Int_Int_IEqualityComparer System.Collections.Tests.ComparerTests.DefaultInvariant_Compare Configuration: outerloop_netcoreapp_osx10.12_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_release/221/testReport/System.Collections.Tests/SortedListTests/Item_Get_DifferentCulture/ MESSAGE: Exit code was 131 but it should have been 42\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_release/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 172 -24766 area-System.Net "Test: System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_MismatchProtocols_Fails failed with ""System.InvalidProgramException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls12, expectedException: typeof(System.Security.Auth...` has failed. Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.InvalidProgramException): No exception available to rethrow. Stack Trace: at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 1218 at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2,TArg3](Func`6 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/TaskFactory.cs:line 1092 at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 405 at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in /root/corefx-1075192/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs:line 154 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 Build : Master - 20171020.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerAsyncAuthenticateTest~2FServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol:%20Tls,%20clientProtocol:%20Tls12,%20expectedException:%20typeof(System.Security.Auth... -24767 area-System.Net "Test: System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success` has failed. System.IO.IOException : The read operation failed, see inner exception. ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.Security.SslStreamInternal.EndRead(IAsyncResult asyncResult) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 155 at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 696 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 1344 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 at System.Net.Security.Tests.SslStreamStreamToStreamTest.d__10.MoveNext() in /root/corefx-1075192/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 316 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 ----- Inner Stack Trace ----- at System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1.Return(T[] array, Boolean clearArray) in /root/coreclr/src/mscorlib/shared/System/Buffers/TlsOverPerCoreLockedStacksArrayPool.cs:line 178 at System.Net.Security.SslStreamInternal.ReturnReadBufferIfEmpty() in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 54 at System.Net.Security.SslStreamInternal.CopyDecryptedData(Byte[] buffer, Int32 offset, Int32 count) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 517 at System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 697 at System.Net.Security.SslStreamInternal.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 652 at System.Net.Security.SslStreamInternal.ReadHeaderCallback(AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 758 Build : Master - 20171020.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Async~2FSslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success -24768 area-System.Net "Test: System.Net.Tests.SimpleHttpTests/UnknownHeaders_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.SimpleHttpTests/UnknownHeaders_Success(numHeaders: 100)` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: (null) Stack Trace: at System.Net.Tests.SimpleHttpTests.d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20171020.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.SimpleHttpTests~2FUnknownHeaders_Success(numHeaders:%20100) +24766 area-System.Net "Test: System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_MismatchProtocols_Fails failed with ""System.InvalidProgramException""" Opened on behalf of xxx The test `System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls12, expectedException: typeof(System.Security.Auth...` has failed. Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.InvalidProgramException): No exception available to rethrow. Stack Trace: at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 1218 at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2,TArg3](Func`6 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/TaskFactory.cs:line 1092 at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 405 at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in /root/corefx-1075192/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs:line 154 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 Build : Master - 20171020.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerAsyncAuthenticateTest~2FServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol:%20Tls,%20clientProtocol:%20Tls12,%20expectedException:%20typeof(System.Security.Auth... +24767 area-System.Net "Test: System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success failed with ""System.NullReferenceException""" Opened on behalf of xxx The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success` has failed. System.IO.IOException : The read operation failed, see inner exception. ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.Security.SslStreamInternal.EndRead(IAsyncResult asyncResult) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 155 at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 696 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 1344 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 at System.Net.Security.Tests.SslStreamStreamToStreamTest.d__10.MoveNext() in /root/corefx-1075192/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 316 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 ----- Inner Stack Trace ----- at System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1.Return(T[] array, Boolean clearArray) in /root/coreclr/src/mscorlib/shared/System/Buffers/TlsOverPerCoreLockedStacksArrayPool.cs:line 178 at System.Net.Security.SslStreamInternal.ReturnReadBufferIfEmpty() in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 54 at System.Net.Security.SslStreamInternal.CopyDecryptedData(Byte[] buffer, Int32 offset, Int32 count) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 517 at System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 697 at System.Net.Security.SslStreamInternal.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 652 at System.Net.Security.SslStreamInternal.ReadHeaderCallback(AsyncProtocolRequest asyncRequest) in /root/corefx-1075192/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 758 Build : Master - 20171020.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Async~2FSslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success +24768 area-System.Net "Test: System.Net.Tests.SimpleHttpTests/UnknownHeaders_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of xxx The test `System.Net.Tests.SimpleHttpTests/UnknownHeaders_Success(numHeaders: 100)` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: (null) Stack Trace: at System.Net.Tests.SimpleHttpTests.d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20171020.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20171020.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.SimpleHttpTests~2FUnknownHeaders_Success(numHeaders:%20100) 24770 area-System.Collections Add RemoveIfValue to ConcurrentDictionary "This is similar to #24246, but I don't think it's quite the same. I have the following scenario: I use a ConcurrentDictionary as the core of a simple memory cache. The Get function of the cache will look up the key, and check the value's timestamp to see if the entry is expired. If it is, I want to remove it from the dictionary. However, a different thread might have concurrently renewed the cache entry, thus making removal unnecessary. So I want to remove the entry, but only if it is still the same value as before. I am basically looking for TryUpdate, but with the updated value being ""not there"". Or to put it another way, I want ICollection.Remove(KeyValuePair) exposed and documented as a regular function. The implementation is actually trivial: ``` public bool RemoveIfValue(TKey key, TValue value) { if (key == null) throw new ArgumentNullException(nameof(key), SR.ConcurrentDictionary_ItemKeyIsNull); TValue throwAwayValue; return TryRemoveInternal(key, out throwAwayValue, true, value); } ``` This is basically a copy&paste of the explicit IDictionary.Remove implementation, but with separate arguments instead of a KeyValuePair, and exposed as a method accessible without casting. This can currently be worked around with this extension method: ``` public static bool RemoveIfValue(this ConcurrentDictionary self, TKey key, TValue value) { var asCollection = (ICollection>)self; return asCollection.Remove(new KeyValuePair(key, value)); } ```" -24771 area-System.Runtime Throw exception if SysConf fails in Environment.ProcessorCount This shouldn't happen in a valid configuration, but adding the exception to help highlight the problem with an invalid configuration. Related to https://github.com/dotnet/corefx/issues/24663 cc: @joperezr, @AlexGhiondea +24771 area-System.Runtime Throw exception if SysConf fails in Environment.ProcessorCount This shouldn't happen in a valid configuration, but adding the exception to help highlight the problem with an invalid configuration. Related to https://github.com/dotnet/corefx/issues/24663 cc: @joperezr, @AlexGhiondea 24773 area-System.Linq Add optimized path for IReadOnlyCollection/IReadOnlyList in System.Linq It's kind of historical reason for the readonly interfaces not inherited by `ICollection`/`IList`. Adding a optimized path needs a copy of all `ICollection`/`IList` paths and classes. Implementing `ICollection` with `IsReadOnly = true` does get the optimizations, but it's kind of violating the interfaces. -24774 area-System.Net Request for documentation of HttpClientHandler.ServerCertificateCustomValidationCallback Currently the behavior of the property ServerCertificateCustomValidationCallback of the class HttpClientHandler is not obvious and lacks proper documentation. This is a request to document the behavior of the property. I would expect the documentation to go into details on: - what behavior is support on different OS and frameworks (and probably how the version of the SSL/CURL stack affect this) - how this property should be used for different OS and frameworks - how to determine what is supported for the current OS/framework/network stack - its relation to the HttpClientHandler.DangerousAcceptAnyServerCertificateValidator - how and if it might affect or be affected by code that use ServicePointManager.ServerCertificateValidationCallback (e.g. potential race conditions) - how and if it might affect or be affected by code that use WebRequestHandler.ServerCertificateValidationCallback (e.g. potential race conditions) Also I would like to request similar documentation for the WebRequestHandler.ServerCertificateValidationCallback property. -24775 area-System.Net System.Net.Security tests hanging more often on Linux "e.g. https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f60e3fcc6d98a1e237ad36c302f421410267328c/workItem/System.Net.Security.Tests/wilogs ``` Executed on dnblup140000TTW 2017-10-20 14:09:11,846: INFO: scriptrunner(33): _main: BuildTools Helix Script Runner v0.1 starting 2017-10-20 14:09:11,847: INFO: helix_test_execution(24): __init__: Copying execution payload files from /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip to /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution 2017-10-20 14:09:11,847: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.ubuntu' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.ubuntu' 2017-10-20 14:09:11,847: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/setup-kdc.sh' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/setup-kdc.sh' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/krb5.conf' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/krb5.conf' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/System.Net.Security.Tests.dll' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/System.Net.Security.Tests.dll' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/System.Net.Security.Tests.pdb' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/System.Net.Security.Tests.pdb' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.pdb' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.pdb' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.opensuse' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.opensuse' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.centos' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.centos' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/xunit.console.netcore.runtimeconfig.json' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/xunit.console.netcore.runtimeconfig.json' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RunTests.sh' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RunTests.sh' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.exe' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.exe' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/xunit.console.netcore.exe' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/xunit.console.netcore.exe' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.runtimeconfig.json' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.runtimeconfig.json' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/DumplingHelper.py' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/DumplingHelper.py' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.p7b' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.pfx' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.cer' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.pfx' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.p7b' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.cer' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.cer' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.pfx' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.p7b' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.pfx' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.p7b' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/DummyTcpServer.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/DummyTcpServer.pfx' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.pfx' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.pfx' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.pfx' 2017-10-20 14:09:11,855: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.cer' 2017-10-20 14:09:11,855: INFO: proc(23): run_and_log_output: Running: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RunTests.sh /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload 2017-10-20 14:09:11,855: INFO: proc(26): run_and_log_output: CWD: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip 2017-10-20 14:09:11,858: INFO: proc(54): run_and_log_output: Output: Using as the test runtime folder. 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: Running tests... Start time: 14:09:11 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: Commands: 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: python DumplingHelper.py install_dumpling 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: __TIMESTAMP=`python DumplingHelper.py get_timestamp` 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: chmod +x /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload/dotnet 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload/dotnet xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: python DumplingHelper.py collect_dump $\ `pwd` System.Net.Security.Tests /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/bin/runtime/netcoreapp-Linux-Release-x64/,/mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/bin/tests/System.Net.Security.Tests/netcoreapp-Linux-Release-x64/,/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload,/lib/x86_64-linux-gnu/libgcc_s.so.1,/lib/x86_64-linux-gnu/libpthread.so.0,/lib/x86_64-linux-gnu/librt.so.1,/usr/lib/x86_64-linux-gnu/libunwind.so.8,/lib/x86_64-linux-gnu/libdl.so.2,/lib/x86_64-linux-gnu/libuuid.so.1,/usr/lib/x86_64-linux-gnu/libunwind-x86_64.so.8,/usr/lib/x86_64-linux-gnu/libstdc++.so.6,/lib/x86_64-linux-gnu/libm.so.6,/lib/x86_64-linux-gnu/libc.so.6,/lib64/ld-linux-x86-64.so.2,/lib/x86_64-linux-gnu/liblzma.so.5 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip ~/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip 2017-10-20 14:09:12,187: INFO: proc(54): run_and_log_output: Output: downloaded dumpling.py 2017-10-20 14:09:12,188: INFO: proc(54): run_and_log_output: Output: total elapsed time 0:00:00.201976 2017-10-20 14:09:12,296: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-10-20 14:09:12,296: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-10-20 14:09:12,297: INFO: proc(54): run_and_log_output: Output: 2017-10-20 14:09:12,355: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Security.Tests 2017-10-20 14:09:12,573: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Security.Tests 2017-10-20 14:09:12,669: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Security.Tests 2017-10-20 14:09:16,107: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUServerAuth_Ok [SKIP] 2017-10-20 14:09:16,108: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_SelfSignedClientEKUClientAuth_Ok [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUClientAuth_Ok [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ServerEKUClientAuth_Fails [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ClientEKUServerAuth_Fails [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" Killed ``` cc: @geoffkizer, @Drawaes @Drawaes, I'm a little worried this is due to some of the recent SslStream changes. @safern, @danmosemsft, we don't yet have a way to know which test(s) hung, do we?" -24776 area-Infrastructure netcoreapp build vertical needs to be buildable without previous versions See comment at https://github.com/dotnet/corefx/pull/24708#discussion_r145993635. For our netcoreapp build vertical we need to be able to build it against the latest version without needing to restore the older packages. This is for the build-from-source efforts which require us to build all the assets instead of restoring them. +24774 area-System.Net Request for documentation of HttpClientHandler.ServerCertificateCustomValidationCallback Currently the behavior of the property ServerCertificateCustomValidationCallback of the class HttpClientHandler is not obvious and lacks proper documentation. This is a request to document the behavior of the property. I would expect the documentation to go into details on: - what behavior is support on different OS and frameworks (and probably how the version of the SSL/CURL stack affect this) - how this property should be used for different OS and frameworks - how to determine what is supported for the current OS/framework/network stack - its relation to the HttpClientHandler.DangerousAcceptAnyServerCertificateValidator - how and if it might affect or be affected by code that use ServicePointManager.ServerCertificateValidationCallback (e.g. potential race conditions) - how and if it might affect or be affected by code that use WebRequestHandler.ServerCertificateValidationCallback (e.g. potential race conditions) Also I would like to request similar documentation for the WebRequestHandler.ServerCertificateValidationCallback property. +24775 area-System.Net System.Net.Security tests hanging more often on Linux "e.g. https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f60e3fcc6d98a1e237ad36c302f421410267328c/workItem/System.Net.Security.Tests/wilogs ``` Executed on dnblup140000TTW 2017-10-20 14:09:11,846: INFO: scriptrunner(33): _main: BuildTools Helix Script Runner v0.1 starting 2017-10-20 14:09:11,847: INFO: helix_test_execution(24): __init__: Copying execution payload files from /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip to /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution 2017-10-20 14:09:11,847: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.ubuntu' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.ubuntu' 2017-10-20 14:09:11,847: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/setup-kdc.sh' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/setup-kdc.sh' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/krb5.conf' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/krb5.conf' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/System.Net.Security.Tests.dll' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/System.Net.Security.Tests.dll' 2017-10-20 14:09:11,848: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/System.Net.Security.Tests.pdb' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/System.Net.Security.Tests.pdb' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.pdb' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.pdb' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.opensuse' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.opensuse' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/kdc.conf.centos' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/kdc.conf.centos' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/xunit.console.netcore.runtimeconfig.json' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/xunit.console.netcore.runtimeconfig.json' 2017-10-20 14:09:11,849: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RunTests.sh' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RunTests.sh' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.exe' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.exe' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/xunit.console.netcore.exe' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/xunit.console.netcore.exe' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RemoteExecutorConsoleApp.runtimeconfig.json' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/RemoteExecutorConsoleApp.runtimeconfig.json' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/DumplingHelper.py' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/DumplingHelper.py' 2017-10-20 14:09:11,850: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.p7b' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.pfx' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.cer' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.pfx' 2017-10-20 14:09:11,851: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.p7b' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.cer' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.cer' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.pfx' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.p7b' 2017-10-20 14:09:11,852: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testservereku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testservereku.contoso.com.pfx' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.p7b' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testnoeku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testnoeku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.cer' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/DummyTcpServer.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/DummyTcpServer.pfx' 2017-10-20 14:09:11,853: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedclienteku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedclienteku.contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.pfx' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.pfx' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclienteku.contoso.com.p7b' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclienteku.contoso.com.p7b' 2017-10-20 14:09:11,854: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testselfsignedservereku.contoso.com.pfx' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testselfsignedservereku.contoso.com.pfx' 2017-10-20 14:09:11,855: INFO: io(27): copy_tree_to: Copying '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/TestData/testclient1_at_contoso.com.cer' to '/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Exec/execution/TestData/testclient1_at_contoso.com.cer' 2017-10-20 14:09:11,855: INFO: proc(23): run_and_log_output: Running: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip/RunTests.sh /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload 2017-10-20 14:09:11,855: INFO: proc(26): run_and_log_output: CWD: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip 2017-10-20 14:09:11,858: INFO: proc(54): run_and_log_output: Output: Using as the test runtime folder. 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: Running tests... Start time: 14:09:11 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: Commands: 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: python DumplingHelper.py install_dumpling 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: __TIMESTAMP=`python DumplingHelper.py get_timestamp` 2017-10-20 14:09:11,860: INFO: proc(54): run_and_log_output: Output: chmod +x /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload/dotnet 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload/dotnet xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: python DumplingHelper.py collect_dump $\ `pwd` System.Net.Security.Tests /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/bin/runtime/netcoreapp-Linux-Release-x64/,/mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/bin/tests/System.Net.Security.Tests/netcoreapp-Linux-Release-x64/,/home/helixbot/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Payload,/lib/x86_64-linux-gnu/libgcc_s.so.1,/lib/x86_64-linux-gnu/libpthread.so.0,/lib/x86_64-linux-gnu/librt.so.1,/usr/lib/x86_64-linux-gnu/libunwind.so.8,/lib/x86_64-linux-gnu/libdl.so.2,/lib/x86_64-linux-gnu/libuuid.so.1,/usr/lib/x86_64-linux-gnu/libunwind-x86_64.so.8,/usr/lib/x86_64-linux-gnu/libstdc++.so.6,/lib/x86_64-linux-gnu/libm.so.6,/lib/x86_64-linux-gnu/libc.so.6,/lib64/ld-linux-x86-64.so.2,/lib/x86_64-linux-gnu/liblzma.so.5 2017-10-20 14:09:11,861: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip ~/dotnetbuild/work/282ace74-88c4-48cc-a76d-4d82bfa600c7/Work/48747109-97f1-465f-973b-e824e0f189ff/Unzip 2017-10-20 14:09:12,187: INFO: proc(54): run_and_log_output: Output: downloaded dumpling.py 2017-10-20 14:09:12,188: INFO: proc(54): run_and_log_output: Output: total elapsed time 0:00:00.201976 2017-10-20 14:09:12,296: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-10-20 14:09:12,296: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-10-20 14:09:12,297: INFO: proc(54): run_and_log_output: Output: 2017-10-20 14:09:12,355: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Security.Tests 2017-10-20 14:09:12,573: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Security.Tests 2017-10-20 14:09:12,669: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Security.Tests 2017-10-20 14:09:16,107: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUServerAuth_Ok [SKIP] 2017-10-20 14:09:16,108: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_SelfSignedClientEKUClientAuth_Ok [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUClientAuth_Ok [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ServerEKUClientAuth_Fails [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ClientEKUServerAuth_Fails [SKIP] 2017-10-20 14:09:16,109: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" Killed ``` cc: @geoffkizer, xxx @Drawaes, I'm a little worried this is due to some of the recent SslStream changes. @safern, @danmosemsft, we don't yet have a way to know which test(s) hung, do we?" +24776 area-Infrastructure netcoreapp build vertical needs to be buildable without previous versions See comment at https://github.com/dotnet/corefx/pull/24708#discussion_r145993635. For our netcoreapp build vertical we need to be able to build it against the latest version without needing to restore the older packages. This is for the build-from-source efforts which require us to build all the assets instead of restoring them. 24778 area-System.Net ManagedHandler: Protocol corruption if 100-continue is expected but not received ManagedHandler has the same 100-continue bug as CurlHandler: https://github.com/dotnet/corefx/issues/24435 100-continue is an inherent race condition. The client is waiting for a 100 response or a final response, but only for a given timeout. When the server sends the final response without a 100, it has no way of knowing if the client's timer has expired and it has already started sending data. This would be an ambiguous situation as the server wouldn't reliably know if the next bytes it received were the body it was promised or the headers for the next request. To prevent this ambiguity the client must always send the data it promised, or a chunked terminator, or close the connection. For small bodies it's worth sending it to avoid the cost of creating a new connection, but for large bodies is far more economical close the connection. ManagedHandler (and CurlHandler) does not send the the request body if it receives a final response rather than a 100 continue. This causes protocol corruption on the next request and it is rejected by the server (e.g. 400 Bad Request). Final status codes are common in authentication scenarios like when the user's request is rejected due to missing or insufficient permissions. The client can send a new request with the required credentials, and many clients do this automatically. See AuthenticationHandler. Workaround: Apps must disable ExpectContinue on every request with a body. The fix for ManagedHandler looks small, handling for ReceivedOtherStatusCode needs to be added to the switch here: https://github.com/dotnet/corefx/blob/08802ff9c877f7f75a82d6704d84d321e99eb5c8/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnection.cs#L457-L462 Sending the data is the minimal fix, but consider sending only the chunked terminator or closing the connection for non-trivial request bodies. This can also avoid problems with un-buffered HttpContent objects that can't be sent twice. -24779 area-System.Runtime Adding tests for Random Hashing Fixes #24466 cc: @danmosemsft @stephentoub -24781 area-System.Net [WIP] Checking Master with true Outerloop -24782 area-Infrastructure Update ProjectNTfs, ProjectNTfsTestILC, Standard to rel-25916-00, rel-25916-00, preview1-25916-01, respectively (release/uwp6.0) +24779 area-System.Runtime Adding tests for Random Hashing Fixes #24466 cc: xxx @stephentoub +24781 area-System.Net [WIP] Checking Master with true Outerloop +24782 area-Infrastructure Update ProjectNTfs, ProjectNTfsTestILC, Standard to rel-25916-00, rel-25916-00, preview1-25916-01, respectively (release/uwp6.0) 24788 area-System.Linq Add a single parameter, with return type `ValueTuple` overload for `Enumerable.Zip`? "Instead of writing ```cs foreach (var (x, y) in Seq1.Zip(Seq2, (s1, s2) => (s1, s2))) ``` we could write: ```cs foreach (var (x, y) in Seq1.Zip(Seq2)) ``` The implementation seems to be trivial: ```cs public static class ZipExtensions { public static IEnumerable<(T, U)> Zip(this IEnumerable seq1, IEnumerable seq2) { return seq1.Zip(seq2, (x, y) => (x, y)); } } ``` ## Usage ```cs var list = new List{1, 2, 3, 4}; foreach(var (n, i) in list.Zip(Range(0, list.Count))) { Console.WriteLine($""{i}: {n}""); } ``` ## Other Languages `Zip`-like functions in Rust, C++ (Boost, range-v3) all return `tuple`s." -24789 area-System.Net Make Expect: 100-continue handling more robust "When libcurl sends an Expect: 100-continue header, if it gets back a success error code, it may avoid sending the remaining payload and also may keep the connection open, which can confuse servers that expect to receive the fully promised payload and that don't close the connection when sending a final success status code instead of 100 continue. To mitigate this, we simply change the default ExpectContinue == null behavior to be the equivalent of ExpectContinue == false rather than to be ""do whatever the platform decides"". This also more closely aligns with WinHttpHandler and ManagedHandler, where effectively the ""platform"" in those cases decides that the default is disabled. For ManagedHandler, currently we're mimicking behavior like that libcurl employed and may sometimes not send the full payload but still keep the connection open. Instead, make sure we either always send the full payload or close the connection. Fixes https://github.com/dotnet/corefx/issues/24435 Fixes https://github.com/dotnet/corefx/issues/24778 cc: @geoffkizer, @Tratcher, @Priya91, @wfurt " +24789 area-System.Net Make Expect: 100-continue handling more robust "When libcurl sends an Expect: 100-continue header, if it gets back a success error code, it may avoid sending the remaining payload and also may keep the connection open, which can confuse servers that expect to receive the fully promised payload and that don't close the connection when sending a final success status code instead of 100 continue. To mitigate this, we simply change the default ExpectContinue == null behavior to be the equivalent of ExpectContinue == false rather than to be ""do whatever the platform decides"". This also more closely aligns with WinHttpHandler and ManagedHandler, where effectively the ""platform"" in those cases decides that the default is disabled. For ManagedHandler, currently we're mimicking behavior like that libcurl employed and may sometimes not send the full payload but still keep the connection open. Instead, make sure we either always send the full payload or close the connection. Fixes https://github.com/dotnet/corefx/issues/24435 Fixes https://github.com/dotnet/corefx/issues/24778 cc: @geoffkizer, @Tratcher, @Priya91, xxx " 24791 area-System.Net SSLStream Check for deallocated GCHandle The GCHandle can easily be deallocated (by closing the SSlStream or if it's cancelled) before OpenSsl calls back due to the otherside sending the Client Hello. Therefore if I am not mistaken we should check that the GCHandle is still allocated when we rehydrate it from a pointer handed in from unmanaged code? Also if it is null or deallocated, we don't want to throw an exception inside a Native callback because it can cause all kinds of havoc. 24792 area-System.Data SqlClient: OUTPUT clause causes exceptions to not get thrown until read "This scenario is a bit lengthy, so I'll load it into a gist: https://gist.github.com/benrr101/31628b57f1ab410090237c9018860e05 Basically what this boils down to is that if I `.ExecuteReader()` on a `SqlCommand` that has an `OUTPUT` clause in it, I don't get an exception from the query failing until I call `.Read()` on the `SqlDataReader` I gt back. For instance executing: ``` INSERT INTO [dbo].[testtable]([small_col]) VALUES (""this value will be truncated"") SELECT * FROM [dbo].[testtable] ``` ``` SqlDataReader reader = cmd.ExecuteReader(); // Doesn't throw reader.Read() // DOES throw ``` But executing: ``` INSERT INTO [dbo].[testtable]([small_col]) OUTPUT inserted.[small_col] VALUES (""this value will be truncated"") ``` ``` SqlDataReader reader = cmd.ExecuteReader(); // DOES throw reader.Read(); // Never executed ``` At this point I'm not sure if this is an expected behavior due to quirks in the TDS protocol or if it's a bug. Nevertheless, this is a bit of weird behavior that has already caused us a couple unexpected issue." 24793 area-System.Runtime Add Convert.cs performance tests. Add Convert.cs performance tests. (#18765) -24794 area-System.Runtime Environment.ProcessorCount is -1 "On my Linux system (a VPS running Debian, using the [KVM](https://www.linux-kvm.org/page/Main_Page) virtualization platform), `Environment.ProcessorCount` is returning `-1`. However, the native syscall works fine: ```csharp using System; using System.Runtime.InteropServices; namespace ConcurrentBug { class Program { private const int _SC_NPROCESSORS_ONLN = 84; [DllImport(""libc"")] private static extern long sysconf(int name); static void Main(string[] args) { Console.WriteLine($""Processor Count (Managed): {Environment.ProcessorCount}""); Console.WriteLine($""Processor Count (Native): {sysconf(_SC_NPROCESSORS_ONLN)}""); } } } ``` ``` 0:25 daniel@vps03 /tmp/ConcurrentBug % /usr/bin/dotnet ConcurrentBug.dll Processor Count (Managed): -1 Processor Count (Native): 1 ``` This breaks the default constructor for `ConcurrentDictionary` - **All** ASP.NET Core sites on this server fail with: ``` Unhandled Exception: System.ArgumentOutOfRangeException: The concurrencyLevel argument must be positive. Parameter name: concurrencyLevel at System.Collections.Concurrent.ConcurrentDictionary`2..ctor(Int32 concurrencyLevel, Int32 capacity, Boolean growLockArray, IEqualityComparer`1 comparer) at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher..ctor(String root, FileSystemWatcher fileSystemWatcher, Boolean pollForChanges) at Microsoft.Extensions.FileProviders.PhysicalFileProvider.CreateFileWatcher(String root) at Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize(IHostingEnvironment hostingEnvironment, String applicationName, String contentRootPath, WebHostOptions options) at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors) at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() at Example.Web.Program.BuildWebHost(String[] args) in C:\src\Example\src\Example.Web\Program.cs:line 21 at Example.Web.Program.Main(String[] args) in C:\src\Example\src\Example.Web\Program.cs:line 17 ``` ## Environment ``` 0:16 daniel@vps03 /tmp/ConcurrentBug % /usr/bin/dotnet --info .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: debian OS Version: OS Platform: Linux RID: debian-x64 Base Path: /usr/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d 0:17 daniel@vps03 /tmp/ConcurrentBug % cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Xeon(R) CPU E3-1270 v3 @ 3.50GHz stepping : 3 microcode : 0x1 cpu MHz : 3500.014 cache size : 8192 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt bugs : bogomips : 7000.02 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ``` " +24794 area-System.Runtime Environment.ProcessorCount is -1 "On my Linux system (a VPS running Debian, using the [KVM](https://www.linux-kvm.org/page/Main_Page) virtualization platform), `Environment.ProcessorCount` is returning `-1`. However, the native syscall works fine: ```csharp using System; using System.Runtime.InteropServices; namespace ConcurrentBug { class Program { private const int _SC_NPROCESSORS_ONLN = 84; [DllImport(""libc"")] private static extern long sysconf(int name); static void Main(string[] args) { Console.WriteLine($""Processor Count (Managed): {Environment.ProcessorCount}""); Console.WriteLine($""Processor Count (Native): {sysconf(_SC_NPROCESSORS_ONLN)}""); } } } ``` ``` 0:25 danielxxx /tmp/ConcurrentBug % /usr/bin/dotnet ConcurrentBug.dll Processor Count (Managed): -1 Processor Count (Native): 1 ``` This breaks the default constructor for `ConcurrentDictionary` - **All** ASP.NET Core sites on this server fail with: ``` Unhandled Exception: System.ArgumentOutOfRangeException: The concurrencyLevel argument must be positive. Parameter name: concurrencyLevel at System.Collections.Concurrent.ConcurrentDictionary`2..ctor(Int32 concurrencyLevel, Int32 capacity, Boolean growLockArray, IEqualityComparer`1 comparer) at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher..ctor(String root, FileSystemWatcher fileSystemWatcher, Boolean pollForChanges) at Microsoft.Extensions.FileProviders.PhysicalFileProvider.CreateFileWatcher(String root) at Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize(IHostingEnvironment hostingEnvironment, String applicationName, String contentRootPath, WebHostOptions options) at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors) at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() at Example.Web.Program.BuildWebHost(String[] args) in C:\src\Example\src\Example.Web\Program.cs:line 21 at Example.Web.Program.Main(String[] args) in C:\src\Example\src\Example.Web\Program.cs:line 17 ``` ## Environment ``` 0:16 danielxxx /tmp/ConcurrentBug % /usr/bin/dotnet --info .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: debian OS Version: OS Platform: Linux RID: debian-x64 Base Path: /usr/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d 0:17 danielxxx /tmp/ConcurrentBug % cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Xeon(R) CPU E3-1270 v3 xxx 3.50GHz stepping : 3 microcode : 0x1 cpu MHz : 3500.014 cache size : 8192 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt bugs : bogomips : 7000.02 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ``` " 24796 area-System.Diagnostics [Api] StackTraceFormatting{Options} "## Motivation Stack traces are very noisy as they *post*-exception stacks (and ones used to produce the exception, like `ThrowHelper`s); that are the same for every exception: ``` at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at Program.d__2.MoveNext() ``` When only ``` at Program.d__2.MoveNext() ``` Is useful in diagnosing the exception. A way is needed to discard these post-error helper stacks; to make the stack-trace more useful and less noise. ## Proposed Api Adds extra .ctor overload + param to `DebuggerNonUserCodeAttribute` ```csharp [Flags] public enum StackTraceFormattingOptions { None = 0, StackTraceHidden = 1 << 0 ... } ``` ```csharp public partial class DebuggerNonUserCodeAttribute { /// Initializes the . /// The hint. public DebuggerNonUserCodeAttribute(StackTraceFormattingOptions stackTraceOptions) { StackTraceOptions = stackTraceOptions; } /// Gets the . internal StackTraceFormattingOptions StackTraceOptions { get; } } ``` Adds StackTrace formatting configuration (which can be switched at runtime; if more detailed traces are needed) ```csharp [Flags] public enum StackTraceFormatting { None = 0, ExcludeStackTraceHidden = 1 << 0, // DebuggerNonUserCode /w StackTraceHidden ExcludeDispatchBoundaries = 1 << 1, ExcludeNonUserCode = 1 << 2 // DebuggerNonUserCode ... } ``` ```csharp public partial class StackTrace { public static StackTraceFormatting FormattingOptions { get; set; } } ``` **Related:** * ""Make stack traces readable"" https://github.com/dotnet/corefx/issues/24627 * ""Improved formatting for async stack traces"" https://github.com/dotnet/coreclr/issues/2813 * ""Provide an API for traversing/reasoning about async call stacks"" https://github.com/dotnet/corefx/issues/1370 * ""BuilderMethodAttribute"" https://github.com/dotnet/corefx/issues/24795" 24798 area-System.IO Change lifetime of Socket used in NamedPipeServerStream on Unix We currently create and destroy the unix domain socket each time WaitForConnection{Async} is called, and it lives until the client connects. This causes problems when multiple clients try to connect before WaitForConnection{Async} is called; any number that's under the min listen limit applied by the OS will have their connections completed, even though Accept hasn't been called, and then when the socket is closed, the connections will all fail. This change moves the UDS creation to when the NamedPipeServerStream is created, deleting it when the NPSS is disposed. cc: @pjanotti, @JeremyKuhne, @jaredpar, @khyperia -24799 area-System.Net SSLStream Fixing GC Hole +24799 area-System.Net SSLStream Fixing GC Hole 24800 area-System.Net Remove dead code from System.Net.NetworkInformation PR addresses issue #17905, project **System.Net.NetworkInformation**. Most of the red things in the [diff file](http://tempcoverage.blob.core.windows.net/report2/System.Net.NetworkInformation.diff.html) are in `src\Common` folder. 24801 area-System.Net Remove dead code from System.Net.Primitives PR addresses issue #17905, project **System.Net.Primitives**. 24802 area-System.Net Port WinRT WebSockets Client fix (#21600) to UWP servicing (netcore50) branch As as been reported [here](https://github.com/dotnet/corefx/issues/17317), if the connection of a `ClientWebSocket` in NETStandard16 is terminated, the process will crash because the exception cannot be handled. This issue has been adressed in NETStandard20/UWP6.0 and the FCU, and it works if you target W10 build 16299 on a desktop. However, on W10M devices like the Lumia 640, the build and thus NETStandard20 is unavailable and everytime a connection is disrupted the app will crash. Could a fix for this be made available, preferably in the near future? Seeing your app being killed without anything you can do for several months because of a known and identified issue is tiresome. -24803 area-Meta Adjust link fit to other URLs -24804 area-System.Net Test failure: System.Net.Sockets.Tests.TimeoutTest / SendTimesOut_Throws ## Types of failures ``` Assert.InRange() Failure Range: (1000 - 4000) Actual: 4846.0518 at System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws(Boolean forceNonBlocking) in /root/corefx-1079585/src/System.Net.Sockets/tests/FunctionalTests/TimeoutTest.cs:line 130 ``` ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 8/16 | 20170816.01 | Debian90 | Range: (1500 - 3000), Actual: 3276.4603 8/16 | 20170816.01 | Debian90 | Range: (1500 - 3000), Actual: 726.4583 8/28 | 20170828.01 | Ubuntu14.04 | Range: (1500 - 3000), Actual: 1428.4429 10/23 | 20171023.01 | Suse42.2 | Range: (1000 - 4000), Actual: 4846.0518 - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171023.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.TimeoutTest~2FSendTimesOut_Throws(forceNonBlocking:%20False)) -24805 area-System.Security Test failure: System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests/Verify_InvalidPaddingMode_Throws Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests/Verify_InvalidPaddingMode_Throws` has failed. $BlockedFromReflection_5_22711b8a : A device attached to the system is not functioning Stack Trace: at Internal.NativeCrypto.CapiHelper.SignValue($SafeProvHandle hProv, $SafeKeyHandle hKey, Int32 keyNumber, Int32 calgKey, Int32 calgHash, Byte[] hash) in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\CapiHelper.Windows.cs:line 1223 at System.Security.Cryptography.RSACryptoServiceProvider.SignData(Byte[] buffer, Object halg) in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RSACryptoServiceProvider.Windows.cs:line 420 at System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests.Verify_InvalidPaddingMode_Throws() in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\tests\RSACryptoServiceProviderTests.cs:line 373 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171023.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171023.01/workItem/System.Security.Cryptography.Csp.Tests.Execution/analysis/xunit/System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests~2FVerify_InvalidPaddingMode_Throws +24803 area-Meta Adjust link fit to other URLs +24804 area-System.Net Test failure: System.Net.Sockets.Tests.TimeoutTest / SendTimesOut_Throws ## Types of failures ``` Assert.InRange() Failure Range: (1000 - 4000) Actual: 4846.0518 at System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws(Boolean forceNonBlocking) in /root/corefx-1079585/src/System.Net.Sockets/tests/FunctionalTests/TimeoutTest.cs:line 130 ``` ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 8/16 | 20170816.01 | Debian90 | Range: (1500 - 3000), Actual: 3276.4603 8/16 | 20170816.01 | Debian90 | Range: (1500 - 3000), Actual: 726.4583 8/28 | 20170828.01 | Ubuntu14.04 | Range: (1500 - 3000), Actual: 1428.4429 10/23 | 20171023.01 | Suse42.2 | Range: (1000 - 4000), Actual: 4846.0518 - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171023.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.TimeoutTest~2FSendTimesOut_Throws(forceNonBlocking:%20False)) +24805 area-System.Security Test failure: System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests/Verify_InvalidPaddingMode_Throws Opened on behalf of xxx The test `System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests/Verify_InvalidPaddingMode_Throws` has failed. $BlockedFromReflection_5_22711b8a : A device attached to the system is not functioning Stack Trace: at Internal.NativeCrypto.CapiHelper.SignValue($SafeProvHandle hProv, $SafeKeyHandle hKey, Int32 keyNumber, Int32 calgKey, Int32 calgHash, Byte[] hash) in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\CapiHelper.Windows.cs:line 1223 at System.Security.Cryptography.RSACryptoServiceProvider.SignData(Byte[] buffer, Object halg) in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RSACryptoServiceProvider.Windows.cs:line 420 at System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests.Verify_InvalidPaddingMode_Throws() in E:\A\_work\1190\s\corefx\src\System.Security.Cryptography.Csp\tests\RSACryptoServiceProviderTests.cs:line 373 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171023.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171023.01/workItem/System.Security.Cryptography.Csp.Tests.Execution/analysis/xunit/System.Security.Cryptography.Csp.Tests.RSACryptoServiceProviderTests~2FVerify_InvalidPaddingMode_Throws 24807 area-System.Net System.Net.Mail.Tests.LoggingTest.EventSource_EventsRaisedAsExpected failed in CI Failed test: System.Net.Mail.Tests.LoggingTest.EventSource_EventsRaisedAsExpected Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3401/testReport/System.Net.Mail.Tests/LoggingTest/EventSource_EventsRaisedAsExpected/ Configuration: osx10.12_release MESSAGE: ~~~ Exit code was 131 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 189 ~~~ -24809 area-System.Net Improve SO_REUSE{ADDR,PORT} xplat behavior for TCP Fixes #24562 The test cases added would fail on Unix and pass on Windows. The ProtocolType is passed to Bind, GetSockOpt and SetSockOpt to change the behavior for TCP in pal_networking.cpp. CC @wfurt @geoffkizer @Priya91 @halter73 @stephentoub -24812 area-System.Diagnostics Add PerformanceCounters Testing +24809 area-System.Net Improve SO_REUSE{ADDR,PORT} xplat behavior for TCP Fixes #24562 The test cases added would fail on Unix and pass on Windows. The ProtocolType is passed to Bind, GetSockOpt and SetSockOpt to change the behavior for TCP in pal_networking.cpp. CC xxx xxx xxx xxx @stephentoub +24812 area-System.Diagnostics Add PerformanceCounters Testing 24815 area-System.Net Remove dead code from System.Net.Requests PR addresses issue #17905, project **System.Net.Requests**. 24816 area-System.Net Remove dead code from System.Net.Security PR addresses issue #17905, project **System.Net.Security**. 24817 area-System.IO FileSystemWatcher misleading exception message "I encountered an exception being thrown in an ASP.NET Core 2.0 project which said ""The directory name {0} is invalid."" and it was misleading. [`FileSystemWatcher`](https://github.com/dotnet/corefx/blob/724ddb8fc95a5b1f639cfa508a32b9a8c50c1949/src/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.cs#L108) throws an exception with this message, and in my case the path was valid but the directory did not exist. ""The directory name {0} does not exist."" would be a more helpful message for me." 24818 area-System.Net Socket.SendAsync not firing SocketAsyncEventArgs Completed event I noticed that with `netcoreapp2.0` the `SocketAsyncEventArgs.Completed` event is not fired when data is sent using the socket `SendAsync` method. This causes some issues when we implement a sending queue along with an `AutoResetEvent`. Since it's the first time I open an issue here, should I provide samples? Just let me know if you need more informations. I am finding this issue only with `netcoreapp2.0`. Doesn't have this issue with `netcoreapp1.0`. You can find here an implementation of my tcp socket client with `SocketAsyncEventArgs` : https://github.com/Eastrall/Ether.Network/blob/develop/src/Ether.Network/Client/NetClient.cs 24819 area-System.Net WinHttpHandler throws exception for redirect when there's no location header The .NET Framework does not. -24820 area-System.Net Fix a few ManagedHandler issues cc: @geoffkizer, @Tratcher +24820 area-System.Net Fix a few ManagedHandler issues cc: @geoffkizer, @Tratcher 24821 area-System.Net ClientWebSocket produces malloc exception in multi-threaded environments. Running a .NET Core 2.0 CLI app on macOS 10.12.6. ClientWebSocket version is the latest I believe. When operating in a multi-threaded environment, I receive what looks like a C++ malloc exception. This appears to be happening when the remote host terminates the connection unexpectedly. I have locks on reads + writes so there is never more than one of each happening at once. When I make a call to either `SendAsync` or `ReceiveAsync` and the connection has been terminated unexpectedly, I receive the following error: ``` dotnet(75902,0x700010355000) malloc: *** error for object 0x7fe5669dbf20: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug ``` I can't say for certain whether or not the remote host has terminated the connection because I don't have a stack trace, but it is my suspicion as I know there is a rate limit on the web socket endpoint, and this issue only happens shortly after sustained requests exceed rate limit threshold. I can't think of any way of preventing this issue in user code (other than a rate limiter but that only stops a certain type of unexpected termination.) Adding a lock won't solve it because the the connection could be terminated between when I call ReceiveAsync and when ReceiveAsync reaches the point in native code where it breaks. 24822 area-System.IO Internal relative relationships for System.IO.Packaging.Package fail to load on Mono "Uri parsing on Mono has a quirk when parsing a Uri that if you pass `UriKind.RelativeOrAbsolute`, a forward slash `/` is treated as absolute while in .NET Framework this would be parsed as relative. This causes packaging to break when reading a package file (for a real example, see OfficeDev/Open-XML-SDK#249 where DocumentFormat.OpenXml fails to load documents on Xamarin) where internal relationships are managed by relative Uris. There are a few workarounds available (see www.mono-project.com/docs/faq/known-issues/urikind-relativeorabsolute/ for details): 1. Use a special `UriKind` defined by Mono when run on that runtime; ie `(UriKind)300` 2. Set an environment variable to force all Uri instances that start with a forward slash to be parsed as relative (`export MONO_URI_DOTNETRELATIVEORABSOLUTE=true`) ## Potential Fix There is a single instance of `UriKind.RelativeOrAbsolute` and it is while parsing internal relationships: https://source.dot.net/#System.IO.Packaging/System/IO/Packaging/InternalRelationshipCollection.cs,357. A potential fix to not require the environment variable would be to use `UriKind.Relative` when target mode is internal. ## Repro ```csharp using (var ms = new MemoryStream()) { using (var package = Package.Open(ms, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { package.CreateRelationship(new Uri(""/target"", UriKind.Relative), TargetMode.Internal, ""type""); } ms.Position = 0; using (var package = Package.Open(ms, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { var relationships = package.GetRelationships(); var relationship = Assert.Single(relationships); Assert.Equal(new Uri(""/"", UriKind.Relative), relationship.SourceUri); Assert.Equal(new Uri(""/target"", UriKind.Relative), relationship.TargetUri); Assert.Equal(TargetMode.Internal, relationship.TargetMode); } } ``` ## Expected Successfully retrieve relationships and have asserts pass ## Observed ``` Unhandled Exception when attempting to call `package.GetRelationships()`: System.ArgumentException: PackageRelationship target must be relative URI if TargetMode is Internal. Parameter name: targetUri ``` " 24823 area-System.Threading Tracking System.Threading.Channels Remaining Cleanup Tracking item for moving [System.Threading.Tasks.Channels](https://github.com/dotnet/corefxlab/commit/a7da3bc0a7eba50c345b21296f036989e92f949a) to corefx. Related #24174 @@ -145,22 +145,22 @@ ID Area Title Description 24826 area-System.IO System.IO.Compression.Brotli Epic Tracking item for [System.IO.Compression.Brotli](https://github.com/dotnet/corefxlab/tree/master/src/System.IO.Compression.Brotli) Related #24174 24829 area-System.Diagnostics System.Diagnostics.TraceSource doesn't read configuration from App.config in .NET Core? "The following code outputs ""Hello, world!"" as a trace message to the console when in a .NET Framework console application. When the same code is used in a .NET Core console application, it outputs nothing. Program.cs ``` using System.Diagnostics; namespace ConsoleApp5 { class Program { private readonly static TraceSource traceSource = new TraceSource(""ConsoleApp5"", SourceLevels.All); static void Main(string[] args) { traceSource.TraceEvent(TraceEventType.Information, 0, ""Hello, world!""); } } } ``` App.config ``` ``` Also, I found that if I try to read a connection string using System.Configuration.ConfigurationManager and I have the system.diagnostics section in the App.config, I receive the following error. I'm assuming that .NET Core doesn't have a machine.config where the system.diagnostics section would normally be defined? ``` Unhandled Exception: System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section system.diagnostics. (C:\Users\jemiller\Documents\Visual Studio 2017\Projects\Library2\LibraryConsoleApplication\bin\Debug\netcoreapp2.0\LibraryConsoleApplication.dll.config line 6) at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) --- End of inner exception stack trace --- at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.ConfigurationManager.get_ConnectionStrings() at LibraryLibrary.LibraryContext..ctor(String name) in C:\Users\jemiller\Documents\Visual Studio 2017\Projects\Library2\LibraryLibrary\LibraryContext.cs:line 43 at LibraryLibrary.LibraryContext..ctor() in C:\Users\jemiller\Documents\Visual Studio 2017\Projects\Library2\LibraryLibrary\LibraryContext.cs:line 39 at LibraryConsoleApplication.Program.Main(String[] args) in C:\Users\jemiller\Documents\Visual Studio 2017\Projects\Library2\LibraryConsoleApplication\Program.cs:line 13 ``` Is there I way I could specify the section similar to the following to get it to work? That is how it is defined in machine.config for .NET Framework. ```
``` Is there some other way in .NET Core to specify that configuration settings for system.diagnostics? " 24833 area-System.Net Add locking to SecureTransport P/Invokes "Makes the macOS version of SslStream capable of doing one read and one write ""at the same time"" without taking down the process. Fixes #24821 (and perhaps others). Best tested by #24759 (TBD)" -24839 area-System.Memory Add SpanExtensions.LastIndexOf SpanExtensions have several IndexOf overloads. We should add similar LastIndexOf overloads: ```c# public static int LastIndexOf(this Span span, T value) where T: IEquatable { throw null; } public static int LastIndexOf(this Span span, ReadOnlySpan value) where T : IEquatable { throw null; } public static int LastIndexOf(this ReadOnlySpan span, T value) where T : IEquatable { throw null; } public static int LastIndexOf(this ReadOnlySpan span, ReadOnlySpan value) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, T value0, T value1) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, T value0, T value1, T value2) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, ReadOnlySpan values) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, T value0, T value1) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, T value0, T value1, T value2) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, ReadOnlySpan values) where T : IEquatable { throw null; } ``` +24839 area-System.Memory Add SpanExtensions.LastIndexOf SpanExtensions have several IndexOf overloads. We should add similar LastIndexOf overloads: ```c# public static int LastIndexOf(this Span span, T value) where T: IEquatable { throw null; } public static int LastIndexOf(this Span span, ReadOnlySpan value) where T : IEquatable { throw null; } public static int LastIndexOf(this ReadOnlySpan span, T value) where T : IEquatable { throw null; } public static int LastIndexOf(this ReadOnlySpan span, ReadOnlySpan value) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, T value0, T value1) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, T value0, T value1, T value2) where T : IEquatable { throw null; } public static int LastIndexOfAny(this Span span, ReadOnlySpan values) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, T value0, T value1) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, T value0, T value1, T value2) where T : IEquatable { throw null; } public static int LastIndexOfAny(this ReadOnlySpan span, ReadOnlySpan values) where T : IEquatable { throw null; } ``` 24840 area-System.Memory Add SpanExtensions.EndsWith SpanExtensions have StartsWith overloads. We should add EndsWith counterparts: ```c# public static bool EndsWith(this Span span, ReadOnlySpan value) where T : IEquatable; public static bool EndsWith(this ReadOnlySpan span, ReadOnlySpan value) where T : IEquatable; ``` 24842 area-System.Net ManagedHandler: Must clear auth header on redirect "This overlaps with https://github.com/dotnet/corefx/issues/24387. RE: https://github.com/dotnet/corefx/blob/6d3804c5d9edec46c85797701834bbb135c8500f/src/System.Net.Http/src/System/Net/Http/Managed/AuthenticationHandler.cs#L48-L54 This code checks for redirects and clears the credentials field. However, it does not clear the Authorization header so the redirected request will contain the original credentials. The original credentials may have been scoped to a specific host/url, but there’s no check on where the redirect will send those credentials to. The Authorization header needs to be cleared. Considering this request flow: 1. Initial request Get http://example.com/ -> 401, www-Authenticate: Basic 2. Resubmitted for auth Get http://example.com/ Authorization: Basic foo <-- Added by AuthenticationHandler -> 301, Location: http://microsoft.com/ 3. Resubmitted for redirect Get http://microsoft.com/ Authorization: Basic foo <-- Left over from the prior request The Authorization header needs to be cleared after step 2 so that it doesn’t get forwarded to the redirect destination. This code block could be used to clear the header, but it would need to be moved to the bottom of the method to run after the auth resubmits. https://github.com/dotnet/corefx/blob/6d3804c5d9edec46c85797701834bbb135c8500f/src/System.Net.Http/src/System/Net/Http/Managed/AuthenticationHandler.cs#L48-L54 Compare to the desktop stack: https://github.com/Microsoft/referencesource/blob/7de0d30c7c5ef56ab60fee41fcdb50005d24979a/System/net/System/Net/HttpWebRequest.cs#L5840 https://github.com/Microsoft/referencesource/blob/7de0d30c7c5ef56ab60fee41fcdb50005d24979a/System/net/System/Net/_AuthenticationState.cs#L318 Repro: Dotnet –version: 2.1.0-preview1-007228 Output for Non-ManagedHandler: “Auth header after redirect: “ Output for ManagedHandler: “Auth header after redirect: Basic Zm9vOmJhcg==” ``` using System; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace ConsoleApp16 { class Program { static void Main(string[] args) { var listener = new HttpListener(); listener.Prefixes.Add(""http://localhost:5001/""); listener.Start(); RunServer(listener); RunClient().Wait(); } private static async Task RunClient() { var handler = new HttpClientHandler(); handler.Credentials = new NetworkCredential(""foo"", ""bar""); var client = new HttpClient(handler); var response = await client.GetStringAsync(""http://localhost:5001/basic""); Console.WriteLine(response); } private static async void RunServer(HttpListener listener) { while (true) { var context = await listener.GetContextAsync(); if (context.Request.Url.AbsolutePath.Equals(""/basic"")) { var authHeader = context.Request.Headers[""Authorization""]; if (!string.IsNullOrEmpty(authHeader) && authHeader.StartsWith(""Basic "")) { // Authenticated, redirect. context.Response.Redirect(""/other""); } else { // Not authenticated context.Response.StatusCode = 401; context.Response.Headers[HttpResponseHeader.WwwAuthenticate] = ""Basic""; } } else if (context.Request.Url.AbsolutePath.Equals(""/other"")) { var authHeader = context.Request.Headers[""Authorization""]; var bytes = Encoding.UTF8.GetBytes($""Auth header after redirect: {authHeader}""); await context.Response.OutputStream.WriteAsync(bytes, 0, bytes.Length); } else { context.Response.StatusCode = 404; } context.Response.Close(); } } } } ``` Note this repro will break differently on .NET Framework where HttpListener is more restrictive about what headers you can set." 24844 area-System.Net Increase tolerance on SendTimesOut_Throws Fixes https://github.com/dotnet/corefx/issues/24804 (assuming it's just because the machine is slow) -24846 area-System.Net Add `Memory` support to WebSockets This is split into several commits as there are multiple related but distinct changes: 1. First, I moved ManagedWebSocket from being based on `ArraySegment` internally to being based on `Memory` internally. That then allows it to be used with either `ArraySegment` or `Memory`, as the former is convertible to the latter. 2. Then I added the new `CreateFromStream` method to WebSocket; this requires the `Memory` support in ManagedWebSocket because `CreateFromStream`'s scratch buffer is a `Memory`. 3. Then I used that new `CreateFromStream` method in both System.Net.WebSockets.Client and System.Net.HttpListener; ManagedWebSocket.cs now is only built into System.Net.WebSockets rather than into all three assemblies. 4. Then I added the new `Memory`-based Send/ReceiveAsync virtuals to WebSocket. 5. Then I overrode these on ManagedWebSocket, providing decent implementations for them. 6. And finally I overrode the `Memory`-based `ReceiveAsync` on WinHttpWebSocket. I didn't bother with `SendAsync` for now as the base implementation should be reasonable for common cases, and if we want to optimize this implementation, there are other things that can and should be done, too. cc: @geoffkizer, @davidsh, @anurse, @benaadams, @Priya91 Fixes https://github.com/dotnet/corefx/issues/22610 Contributes to https://github.com/dotnet/corefx/issues/21537 (we still need to expose it through an OOB) -24847 area-Infrastructure .NET Framework 4.7.1 compatibility issue with reflection-only loading "Now that netstandard.dll is in the GAC, this can cause failures when attempting to use reflection-only loading. For example, given the following: ```c# class Program { static void Main(string[] args) { var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); Console.WriteLine(""Scanning assemblies""); foreach (var file in Directory.EnumerateFiles(path, ""*.dll"")) { Console.WriteLine($""Found {file}""); var assembly = Assembly.ReflectionOnlyLoadFrom(file); foreach (var referencedAssembly in assembly.GetReferencedAssemblies()) { Console.WriteLine($"" Reference: {referencedAssembly}""); try { var reference = Assembly.ReflectionOnlyLoad(referencedAssembly.FullName); } catch { } } } } } ``` If that project targets net461 and includes a reference to a project that targets netstandard2.0, then the behavior of this program will vary based on whether 4.7.1 is installed or not. If run on a machine that does not have 4.7.1 installed, then it will complete successfully. If run on a machine that does have 4.7.1 installed, then it it will fail with the following exception: ``` System.IO.FileLoadException: API restriction: The assembly 'file:///C:\LoadingRepro\LoadingRepro\bin\Debug\net461\netstandard.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain. ``` I've included a full repro solution: [LoadingRepro.zip](https://github.com/dotnet/corefx/files/1412644/LoadingRepro.zip) ATTN: @karelz @AlexGhiondea [EDIT] Added C# syntax by @karelz" +24846 area-System.Net Add `Memory` support to WebSockets This is split into several commits as there are multiple related but distinct changes: 1. First, I moved ManagedWebSocket from being based on `ArraySegment` internally to being based on `Memory` internally. That then allows it to be used with either `ArraySegment` or `Memory`, as the former is convertible to the latter. 2. Then I added the new `CreateFromStream` method to WebSocket; this requires the `Memory` support in ManagedWebSocket because `CreateFromStream`'s scratch buffer is a `Memory`. 3. Then I used that new `CreateFromStream` method in both System.Net.WebSockets.Client and System.Net.HttpListener; ManagedWebSocket.cs now is only built into System.Net.WebSockets rather than into all three assemblies. 4. Then I added the new `Memory`-based Send/ReceiveAsync virtuals to WebSocket. 5. Then I overrode these on ManagedWebSocket, providing decent implementations for them. 6. And finally I overrode the `Memory`-based `ReceiveAsync` on WinHttpWebSocket. I didn't bother with `SendAsync` for now as the base implementation should be reasonable for common cases, and if we want to optimize this implementation, there are other things that can and should be done, too. cc: @geoffkizer, @davidsh, @anurse, @benaadams, xxx Fixes https://github.com/dotnet/corefx/issues/22610 Contributes to https://github.com/dotnet/corefx/issues/21537 (we still need to expose it through an OOB) +24847 area-Infrastructure .NET Framework 4.7.1 compatibility issue with reflection-only loading "Now that netstandard.dll is in the GAC, this can cause failures when attempting to use reflection-only loading. For example, given the following: ```c# class Program { static void Main(string[] args) { var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); Console.WriteLine(""Scanning assemblies""); foreach (var file in Directory.EnumerateFiles(path, ""*.dll"")) { Console.WriteLine($""Found {file}""); var assembly = Assembly.ReflectionOnlyLoadFrom(file); foreach (var referencedAssembly in assembly.GetReferencedAssemblies()) { Console.WriteLine($"" Reference: {referencedAssembly}""); try { var reference = Assembly.ReflectionOnlyLoad(referencedAssembly.FullName); } catch { } } } } } ``` If that project targets net461 and includes a reference to a project that targets netstandard2.0, then the behavior of this program will vary based on whether 4.7.1 is installed or not. If run on a machine that does not have 4.7.1 installed, then it will complete successfully. If run on a machine that does have 4.7.1 installed, then it it will fail with the following exception: ``` System.IO.FileLoadException: API restriction: The assembly 'file:///C:\LoadingRepro\LoadingRepro\bin\Debug\net461\netstandard.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain. ``` I've included a full repro solution: [LoadingRepro.zip](https://github.com/dotnet/corefx/files/1412644/LoadingRepro.zip) ATTN: xxx xxx [EDIT] Added C# syntax by @karelz" 24848 area-System.IO Change IO to use CreateFileFromApp2 etc when in UWP Related to [this issue](https://github.com/dotnet/corefx/issues/18405). Pretty much all the System.IO.File functions won't work when used from UWP due to permission issues. I guess I shouldn't have been surprised, but it would be nice if somehow we could make those 2 APIs work together. -24849 area-System.Net Implement cancellation policy on sslstream. cc @stephentoub @Tratcher @geoffkizer @wfurt @karelz +24849 area-System.Net Implement cancellation policy on sslstream. cc xxx xxx xxx xxx @karelz 24850 area-System.Net [ManagedHandler] Investigate other options for concurrent connection limits and allocations "The connection limit and connection allocation strategy are some of the most frequently hit problems for the prior .NET managed stack. This is one aspect of the new stack that warrants quite a bit of up-front scrutiny. There have already been design improvements here with the central queue vs the old queue-per-connection strategy, but the limits also need to be redesigned. I’m not aware of any consistent connection management behavior across stacks or good publicized algorithms. Interviewing the WinHttp team would be one starting point. The RFC has removed the old limit of two connections per host, it now says: https://tools.ietf.org/html/rfc7230#section-6.4 ""...this specification does not mandate a particular maximum number of connections but, instead, encourages clients to be conservative when opening multiple connections. ... Note that a server might reject traffic that it deems abusive or characteristic of a denial-of-service attack, such as an excessive number of open connections from a single client."" There is nothing conservative about the current allocation algorithm. MaxConnectionsPerServer defaults to int.MaxValue and there is no throttling on the rate at which new connections will be established. The old ServicePointManager.DefaultConnectionLimit started at 2 but also had no allocation throttle. A burst of requests will cause new connections to be established for every request up to the limit. This is likely more expensive and slower than queueing some of those requests to reuse existing connections as they become available. Customers regularly run into the DefaultConnectionLimit bottleneck and ask what the correct value should be. There is no good answer to this question, nor even an easy way for the user to work it out for a specific application. This implies that the limit concept and allocation strategy themselves are flawed. The new stack isn't much different in this respect except that the default is MaxValue. This will manifest as a series of less obvious problems like added latency per request when they create extra new connections, added memory and CPU usage creating and maintaining idle connections, more sporadic failures when a request gets assigned to an idle connection that has been dropped, etc.. So what would a new design look like? It would need avoid being an app bottleneck like DefaultConnectionLimit, and also throttle bursts to avoid wasting resources like MaxConnectionsPerServer. The .NET thread pool has these mechanics and would be an interesting design to test. Threads are analogous to connections except that connections are even more expensive to create and maintain. Work items are analogous to requests though requests can be assigned to connections a lot longer. The thread pool injects new threads at a throttled rate and only slowly approaches its configurable limit. Similarly the connection pool should explore only injecting new connections at a throttled rate to prevent bursts from wasting resources. The thread pool also has a configurable min thread limit to avoid bottlenecks at startup." 24852 area-System.Diagnostics Support System.Diagnostics.Eventing on Linux/Mac Port `System.Diagnostics.Eventing` to Linux & Mac -- for Windows Event Log parsing purposes. I created a [SO post here](https://stackoverflow.com/questions/46915998/eventing-namespace-does-not-exist-in-system-diagnostics-in-net-core-and-mon) documenting the issue I currently have with `dotnet` and `mono`. 24853 area-System.Net ALPN No matching protocol tests fail On Windows they seem to hang and timeout On Linux they don't throw an exception but return an empty protocol -24854 area-System.Memory Provide IEnumerable support for Memory ## Rationale Users should be able to pass `Memory` to methods that take in `IEnumerable` similar to array. Currently, this requires calling ToArray() to copy the contents of the `Memory` into an array for it to work, and is unnecessary. For example (from @eerhardt): https://github.com/dotnet/corefxlab/blob/master/src/System.Numerics.Tensors/System/Numerics/DenseTensor.cs#L10 ```C# public void SomeMethod(DenseTensor tensor) { Memory memory = tensor.Buffer; var value = CreateBatch(..., memory.ToArray(), ...); } ``` https://github.com/Microsoft/CNTK/blob/master/bindings/csharp/CNTKLibraryManagedDll/ShimApiClasses/ValueShim.cs#L104 ```C# public static Value CreateBatch(NDShape sampleShape, IEnumerable batch, DeviceDescriptor device, bool readOnly = false) { T[] batchAsArray = batch.ToArray(); return CreateBatch(sampleShape, batchAsArray, 0, batchAsArray.Count(), device, readOnly); } ``` If `Memory` implemented `IEnumerable`, then the ToArray() call would not be required. However, this would cause applications that reference System.Memory and `Memory` for any scenario to be larger (when compiled AOT). Furthermore, if `Memory` was an `IEnumerable`, it might result in a pit of failure as it could lead to users unintentionally using the enumerator to iterate over the data rather than the more performant indexer on Memory.Span (especially for primitive types like `Memory`). To discourage unnecessary use of the enumerator but still provide support for the scenarios where you need an IEnumerable, the proposed solution is to add an adapter class and a ToEnumerable extension method on `Memory`. As an FYI, `Span` cannot implement `IEnumerable` since it is a stack-only, byref type, and casting it to an interface would cause boxing. The compiler will throw and error: `'Span': ref structs cannot implement interfaces` ## Proposed API ```C# namespace System { public static class MemoryExtensions { public static IEnumerable ToEnumerable(this Memory memory); } } ``` ## Usage Taking the above example, it would look as follows: ```C# public void SomeMethod(DenseTensor tensor) { Memory memory = tensor.Buffer; var value = CreateBatch(..., memory.ToEnumerable(), ...); } ``` ## Partial Implementation ```C# public static IEnumerable ToEnumerable(this Memory memory) => new MemoryEnumerable(memory); internal class MemoryEnumerable : IEnumerable { ReadOnlyMemory _memory; public MemoryEnumerable(ReadOnlyMemory memory) => _memory = memory; public IEnumerator GetEnumerator() => new MemoryEnumerator(_memory); IEnumerator IEnumerable.GetEnumerator() => new MemoryEnumerator(_memory); } internal class MemoryEnumerator : IEnumerator { ReadOnlyMemory _memory; int _index; public MemoryEnumerator(ReadOnlyMemory memory) => _memory = memory; public T Current => _memory.Span[_index]; object IEnumerator.Current => _memory.Span[_index]; public void Dispose() { throw new NotImplementedException(); } public bool MoveNext() { _index++; return _index <_memory.Length; } public void Reset() { _index = 0; } } ``` cc @eerhardt, @KrzysztofCwalina, @stephentoub, @jkotas, @terrajobst, @karelz, @ericstj +24854 area-System.Memory Provide IEnumerable support for Memory ## Rationale Users should be able to pass `Memory` to methods that take in `IEnumerable` similar to array. Currently, this requires calling ToArray() to copy the contents of the `Memory` into an array for it to work, and is unnecessary. For example (from @eerhardt): https://github.com/dotnet/corefxlab/blob/master/src/System.Numerics.Tensors/System/Numerics/DenseTensor.cs#L10 ```C# public void SomeMethod(DenseTensor tensor) { Memory memory = tensor.Buffer; var value = CreateBatch(..., memory.ToArray(), ...); } ``` https://github.com/Microsoft/CNTK/blob/master/bindings/csharp/CNTKLibraryManagedDll/ShimApiClasses/ValueShim.cs#L104 ```C# public static Value CreateBatch(NDShape sampleShape, IEnumerable batch, DeviceDescriptor device, bool readOnly = false) { T[] batchAsArray = batch.ToArray(); return CreateBatch(sampleShape, batchAsArray, 0, batchAsArray.Count(), device, readOnly); } ``` If `Memory` implemented `IEnumerable`, then the ToArray() call would not be required. However, this would cause applications that reference System.Memory and `Memory` for any scenario to be larger (when compiled AOT). Furthermore, if `Memory` was an `IEnumerable`, it might result in a pit of failure as it could lead to users unintentionally using the enumerator to iterate over the data rather than the more performant indexer on Memory.Span (especially for primitive types like `Memory`). To discourage unnecessary use of the enumerator but still provide support for the scenarios where you need an IEnumerable, the proposed solution is to add an adapter class and a ToEnumerable extension method on `Memory`. As an FYI, `Span` cannot implement `IEnumerable` since it is a stack-only, byref type, and casting it to an interface would cause boxing. The compiler will throw and error: `'Span': ref structs cannot implement interfaces` ## Proposed API ```C# namespace System { public static class MemoryExtensions { public static IEnumerable ToEnumerable(this Memory memory); } } ``` ## Usage Taking the above example, it would look as follows: ```C# public void SomeMethod(DenseTensor tensor) { Memory memory = tensor.Buffer; var value = CreateBatch(..., memory.ToEnumerable(), ...); } ``` ## Partial Implementation ```C# public static IEnumerable ToEnumerable(this Memory memory) => new MemoryEnumerable(memory); internal class MemoryEnumerable : IEnumerable { ReadOnlyMemory _memory; public MemoryEnumerable(ReadOnlyMemory memory) => _memory = memory; public IEnumerator GetEnumerator() => new MemoryEnumerator(_memory); IEnumerator IEnumerable.GetEnumerator() => new MemoryEnumerator(_memory); } internal class MemoryEnumerator : IEnumerator { ReadOnlyMemory _memory; int _index; public MemoryEnumerator(ReadOnlyMemory memory) => _memory = memory; public T Current => _memory.Span[_index]; object IEnumerator.Current => _memory.Span[_index]; public void Dispose() { throw new NotImplementedException(); } public bool MoveNext() { _index++; return _index <_memory.Length; } public void Reset() { _index = 0; } } ``` cc @eerhardt, @KrzysztofCwalina, @stephentoub, @jkotas, @terrajobst, @karelz, @ericstj 24855 area-System.ComponentModel CultureInfoConverter added CultureInfoConverter is added to list of IntrinsicTypeConvertersList to make deserialization of newtonsoft possible in .net core Fixes #24755 -24856 area-Infrastructure Need to add Ubuntu 17.10 to the RID graph -24857 area-System.Net Implement cancellation token for SslStream new AuthenticateAs*Async methods also fixes #24853 cc @stephentoub @Tratcher @Drawaes -24861 area-System.Net Registered i/o We need interop delarations for RIO in the corefx repo +24856 area-Infrastructure Need to add Ubuntu 17.10 to the RID graph +24857 area-System.Net Implement cancellation token for SslStream new AuthenticateAs*Async methods also fixes #24853 cc xxx xxx @Drawaes +24861 area-System.Net Registered i/o We need interop delarations for RIO in the corefx repo 24862 area-System.Net WinHttpHandler is not using Host header in SSL handshake The .NET Framework does. 24863 area-System.Memory DO NOT MERGE, DO NOT REVIEW I only care what CI has to say at this time. 24865 area-Meta Memory problem My procedure is very simple, through the socket to accept the connection and then through the sslstream forward data to the back-end server, a simple socket proxy, but soon after the start of the system memory is exhausted, I guess there may be a memory leak, how should I find the problem The @@ -168,44 +168,44 @@ ID Area Title Description 24868 area-System.Net [release/2.0.0] Add locking to SecureTransport P/Invokes "Makes the macOS version of SslStream capable of doing one read and one write ""at the same time"" without taking down the process. release/2.0.0 port of #24833 Fixes #24821 Fixes #24142" 24869 area-System.Net IndexOutOfRangeException from Socket.MultipleAddressConnectAsyncResult.get_RemoteEndPoint https://mc.dot.net/#/user/Drawaes/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/3cac46b196961558ff0ddf1858e8a3429a7d643e/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_BeginConnectDnsEndPoint_Failure ``` Unhandled Exception of Type Xunit.Sdk.ThrowsException Message : Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(System.IndexOutOfRangeException): Index was outside the bounds of the array. Stack Trace : at System.Net.Sockets.Socket.MultipleAddressConnectAsyncResult.get_RemoteEndPoint() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5127 at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2458 at System.Net.Sockets.Tests.DnsEndPointTest.<>c__DisplayClass8_0.b__1() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/src/System.Net.Sockets/tests/FunctionalTests/DnsEndPointTest.cs:line 164 ``` 24871 area-System.Data SqlBulkCopy can fail with a null ref exception for some IDataReader implementations SqlBulkCopy.WriteToServer accepts an IDataReader parameter. If the following two condition are met, the call will fail with a NullReferenceException: 1. The passed implementation of IDataReader does not inherit from DbDataReader 2. A column mapping is specified In the implementation of SqlBulkCopy.WriteToServer, the code attempts to cast the passed parameter to an DbDataReader, which is result in _DbDataReaderRowSource always being null. Attached is a zipped up .cs file with a repro: [Program.zip](https://github.com/dotnet/corefx/files/1415532/Program.zip) -24873 area-System.Net Add ManagedHandler support for canceling connect operations Logically two parts: - Passes the cancellation token down into the connect helper and uses it to cancel the connect. The connect is changed from using the instance Socket.ConnectAsync to using the static Socket.ConnectAsync with SocketAsyncEventArgs as it supports Socket.CancelConnectAsync. - Passes the cancellation token down into the pool and uses it to remove waiters from the queue. Fixes https://github.com/dotnet/corefx/issues/23151 cc: @geoffkizer, @Priya91, @koenigst +24873 area-System.Net Add ManagedHandler support for canceling connect operations Logically two parts: - Passes the cancellation token down into the connect helper and uses it to cancel the connect. The connect is changed from using the instance Socket.ConnectAsync to using the static Socket.ConnectAsync with SocketAsyncEventArgs as it supports Socket.CancelConnectAsync. - Passes the cancellation token down into the pool and uses it to remove waiters from the queue. Fixes https://github.com/dotnet/corefx/issues/23151 cc: @geoffkizer, @Priya91, @koenigst 24874 area-System.Diagnostics EventLogEntryCollectionTests.CheckingEntryEqualityAndIndex failed with ArgumentException https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/94474b7e9325802a019eace4ffce5cb6add96b0b/workItem/System.Diagnostics.EventLog.Tests/analysis/xunit/System.Diagnostics.Tests.EventLogEntryCollectionTests~2FCheckingEntryEqualityAndIndex ``` Unhandled Exception of Type System.ArgumentException Message : System.ArgumentException : Index -1 is out of bounds. Stack Trace : at System.Diagnostics.EventLogInternal.GetEntryAt(Int32 index) at System.Diagnostics.EventLogEntryCollection.get_Item(Int32 index) at System.Diagnostics.Tests.EventLogEntryCollectionTests.CheckingEntryEqualityAndIndex() ``` 24875 area-System.Net ServicePointManager_SecurityProtocolDefault_Ok failed Assert.Equal https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/98d53f272c58b4df9ce997d816d853ddff43e7d8/workItem/System.Net.ServicePoint.Tests/analysis/xunit/System.Net.Tests.TlsSystemDefault~2FServicePointManager_SecurityProtocolDefault_Ok ``` Unhandled Exception of Type Xunit.Sdk.EqualException Message : Assert.Equal() Failure Expected: SystemDefault Actual: Tls11 Stack Trace : at System.Net.Tests.TlsSystemDefault.ServicePointManager_SecurityProtocolDefault_Ok() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/src/System.Net.ServicePoint/tests/TlsSystemDefault.cs:line 14 ``` The test is reading a static property. Most likely there's another test in the project that's modifying that property and either it's not resetting it or they happened to run concurrently. 24876 area-Infrastructure Enable official builds for Alpine Linux This change enables official builds for Alpine 3.6. It doesn't enable tests since we don't have a way to create Alpine queue. 24877 area-Infrastructure [Question] Has anybody run xunit tests on linux-arm? I am trying to build a test project on windows and run the tests on linux-arm. I have a shared framework installed on the linux-arm hardware, but I do not have a full SDK installed on linux-arm because there is not one available. Because there is no cli, I cannot simply run 'dotnet test' on the project. I had hoped that I would be able to create a [Self Contained Deployment](https://docs.microsoft.com/en-us/dotnet/core/deploying/) from the test project and it would include the test runner in the published output, but this is not the case. I hacked together a deployment of vstest.console.dll and it's dependencies that runs on the shared framework on my linux-arm hardware. When I invoked 'dotnet vstest.console.dll mytest.dll' however, no tests are run. Example output: ``` pi@chuckr-pi:~/vstest $ dotnet --fx-version 2.0.4-servicing-25824-03 vstest.console.dll ../test/scratch.dll Microsoft (R) Test Execution Command Line Tool Version 15.6.0-dev Copyright (c) Microsoft Corporation. All rights reserved. Starting test execution, please wait... pi@chuckr-pi:~/vstest $ ``` In this example ../test/scratch.dll contains one xunit test that should fail. This is the contents of the test dir: ``` pi@chuckr-pi:~/test $ ls scratch.deps.json scratch.pdb scratch.runtimeconfig.json xunit.runner.utility.netstandard15.dll scratch.dll scratch.runtimeconfig.dev.json xunit.runner.reporters.netstandard15.dll xunit.runner.visualstudio.dotnetcore.testadapter.dll ``` Has anybody on the corefx team tried to do something similar? -24880 area-System.Memory Complete MemoryExtensions Feature - [x] Parity with Array APIs #25850 - [x] Move MemoryExtensions down to CoreLib #25182 - [x] MemoryExtensions.SequenceCompare #16878 - [x] ReadOnlySpan string-like extension methods #21395 P2 - [x] String slice operations #24072 cc: @ahsonkhan, @joshfree -24883 area-System.Net Fix matching algo This removes the need for a pinned buffer, or a buffer at all on linux. It should give a consistent match across distros. This needs to be attached to the SslHandle because the SslCtxHandle is freed early (I am not sure that is correct openssl use but it's how it's been for a while so we will ignore that for now). +24880 area-System.Memory Complete MemoryExtensions Feature - [x] Parity with Array APIs #25850 - [x] Move MemoryExtensions down to CoreLib #25182 - [x] MemoryExtensions.SequenceCompare #16878 - [x] ReadOnlySpan string-like extension methods #21395 P2 - [x] String slice operations #24072 cc: @ahsonkhan, @joshfree +24883 area-System.Net Fix matching algo This removes the need for a pinned buffer, or a buffer at all on linux. It should give a consistent match across distros. This needs to be attached to the SslHandle because the SslCtxHandle is freed early (I am not sure that is correct openssl use but it's how it's been for a while so we will ignore that for now). 24884 area-Infrastructure Fix offical Alpine build - sync arguments It turns out that the sync.sh command needs to be passed the -BuildTests=false option too so that it doesn't try to sync core-setup packages that are used only for running tests. Since there are no core-setup packages for Alpine yet, the sync was failing. I have also noticed that there was a recent change in the sync arguments that I have not discovered after rebase of my changes to master. So I have added the new option there. -24885 area-System.Drawing Add XunitShowProgress as a temp workaround to find crashing tests in S.Drawing cc: @stephentoub @danmosemsft +24885 area-System.Drawing Add XunitShowProgress as a temp workaround to find crashing tests in S.Drawing cc: xxx @danmosemsft 24886 area-System.Net "WinHttp exception ""The handle is in the wrong state for the requested operation"" in GetAsync_AllowedSSLVersion_Succeeds test on Win7" https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/5ecea8ff47c03a073a77916a9c7d1d806f8c7ce3/workItem/System.Net.Http.Functional.Tests/wilogs ``` 2017-10-26 00:34:29,598: INFO: proc(54): run_and_log_output: Output: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls, requestOnlyThisProtocol: True) [FAIL] 2017-10-26 00:34:29,598: INFO: proc(54): run_and_log_output: Output: System.Net.Http.HttpRequestException : An error occurred while sending the request. 2017-10-26 00:34:29,614: INFO: proc(54): run_and_log_output: Output: ---- System.Net.Http.WinHttpException : The handle is in the wrong state for the requested operation 2017-10-26 00:34:29,614: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.HttpClient.d__58.MoveNext() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_1.<b__0>d.MoveNext() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: ----- Inner Stack Trace ----- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Environment.get_StackTrace() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at Interop.WinHttp.WinHttpReceiveResponse(SafeWinHttpHandle requestHandle, IntPtr reserved) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at Interop.WinHttp.WinHttpReceiveResponse(SafeWinHttpHandle requestHandle, IntPtr reserved) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpHandler.InternalReceiveResponseHeadersAsync(WinHttpRequestState state) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpHandler.d__105.MoveNext() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.ThreadPoolWorkQueue.Dispatch() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from AddCurrentStack --- 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() 2017-10-26 00:34:29,677: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` -24890 area-System.Net Make ServicePointManager tests run out of proc Fixes https://github.com/dotnet/corefx/issues/24875 Also allows RemoteExec() to accept delegates that do not return a value. If an exception (such as an assert failure) occurs within the delegate, the RemoteExec() infrastructure will cause the test to fail. There is no need to return an error code if it would be redundant. Depends on https://github.com/dotnet/buildtools/pull/1759 +24890 area-System.Net Make ServicePointManager tests run out of proc Fixes https://github.com/dotnet/corefx/issues/24875 Also allows RemoteExec() to accept delegates that do not return a value. If an exception (such as an assert failure) occurs within the delegate, the RemoteExec() infrastructure will cause the test to fail. There is no need to return an error code if it would be redundant. Depends on https://github.com/dotnet/buildtools/pull/1759 24891 area-System.Security Segfault in libcrypto.so.1.0.0 I'm getting this somewhere in my app (I suspect it's from a `HttpClient` call to a site that uses HTTPS): ``` #0 0x00007fc4a0e32d5d in ?? () from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #1 0x00007fc4a0e2dc7b in X509_verify_cert () from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #2 0x00007fc4a45770d6 in ?? () #3 0x00007fc3792d0d90 in ?? () #4 0x00007fc50c10a4b0 in ?? () #5 0x0000000021dfe8a3 in ?? () #6 0x00007fc51b3a7488 in vtable for InlinedCallFrame () from /var/www/dan.cx/staging/site/libcoreclr.so #7 0x00007fc3792d1688 in ?? () #8 0x00007fc4a495c918 in ?? () #9 0x00007fc4a495c918 in ?? () #10 0x00007fc3792d0d90 in ?? () #11 0x00007fc4a45770d6 in ?? () #12 0x00007fc3792d0e20 in ?? () #13 0x00007fc4a495c918 in ?? () #14 0x00007fc38474f960 in ?? () #15 0x0000000000000001 in ?? () #16 0x00007fc384741da8 in ?? () #17 0x00007fc38474f9d0 in ?? () #18 0x00007fc38474f960 in ?? () #19 0x00007fc38474f960 in ?? () #20 0x00007fc50c100ff0 in ?? () #21 0x00007fc3792d0e90 in ?? () #22 0x00007fc4a2d6ce57 in ?? () #23 0x00007fc3792d0e30 in ?? () #24 0x00007fc38474f960 in ?? () #25 0x00007fc384741da8 in ?? () #26 0x0000000000000000 in ?? () ``` ASP.NET Core 2.0 on .NET Core 2.0, running on Debian Linux ``` $ dotnet --info .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: debian OS Version: OS Platform: Linux RID: debian-x64 Base Path: /usr/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d $ dpkg -S /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 libssl1.0.0:amd64: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 $ dpkg -s libssl1.0.0 | grep Version Version: 1.0.1t-1+deb8u5 $ ls /usr/lib/x86_64-linux-gnu/libssl* -lah -rw-r--r-- 1 root root 305K Sep 28 14:49 libssl3.so -rw-r--r-- 1 root root 721K Aug 8 07:13 libssl.a lrwxrwxrwx 1 root root 13 Aug 8 07:13 libssl.so -> libssl.so.1.1 -rw-r--r-- 1 root root 386K Sep 23 2016 libssl.so.1.0.0 -rw-r--r-- 1 root root 422K Jun 4 10:15 libssl.so.1.0.2 -rw-r--r-- 1 root root 429K Aug 8 07:13 libssl.so.1.1 ``` 24892 area-System.ComponentModel Result string of Win32Exception.ToString() method missing Win32Exception.NativeErrorCode "When we working with Win API via P/Invoke, it is common practice to check the result of called function and throw new [Win32Exception()](https://github.com/dotnet/corefx/blob/9eafffc6054c8f039d788465621bcfd49a379ca1/src/Microsoft.Win32.Primitives/src/System/ComponentModel/Win32Exception.cs#L21). We can pass error code explicitly, or the default constructor will catch the last one using [Marshal.GetLastWin32Error()](https://github.com/dotnet/coreclr/blob/da8b7181dbe362fbfe64c7ef72ff3a4a7db68f24/src/mscorlib/src/System/Runtime/InteropServices/Marshal.cs#L839). When we log the exception, the result string does not contain root *Win32Exception.NativeErrorCode*: ```csharp var winError = new System.ComponentModel.Win32Exception(0x35); /* winError.ToString() provides: ""System.ComponentModel.Win32Exception (0x80004005): The network path was not found"" */ ``` The *0x80004005* referes to the common HResult.E_FAIL, which is _Unspecified error_ in winerror.h; That's wrong (IMHO)! We have provided exact error code, it is well specified. Expected result: ```csharp /* winError.ToString() provides: ""System.ComponentModel.Win32Exception (0x80070035): The network path was not found"" OR ""System.ComponentModel.Win32Exception (0x00000035): The network path was not found"" */ ``` The last one logs the number we passed, the first one is the result of [Marshal.GetHRForLastWin32Error()](https://github.com/dotnet/coreclr/blob/da8b7181dbe362fbfe64c7ef72ff3a4a7db68f24/src/mscorlib/src/System/Runtime/InteropServices/Marshal.cs#L852)" 24895 area-System.Net System.Net.Mime.MediaTypeNames missing types "https://github.com/dotnet/corefx/blob/3f0bd5d8c3d019ad8b1561395030a58bc38ddfe9/src/System.Net.Mail/ref/System.Net.Mime.cs#L44 I tried using `System.Net.Mime.MediaTypeNames` in my asp net core api to remove ""magic strings"" ```c# [Consumes(System.Net.Mime.MediaTypeNames.Application...)] public IActionResult Post(...) { ... } ``` But it's missing quite a few MIME types. These come to mind: > text/css > text/javascript > > application/json > application/json-patch+json > application/xml > application/javascript > application/x-www-form-urlencoded > > multipart/form-data > multipart/byteranges > > image/png > image/bmp > image/webp > image/svg+xml > > audio/midi > audio/mpeg > audio/webm > audio/ogg > audio/wav > > video/webm > video/ogg" 24896 area-Infrastructure Add retry logic for setup of dotnet cli Fixes intermittent build issues where curl returns: curl: (56) GnuTLS recv error (-54): Error in the pull function. Retry added to re-download if the tar command fails to extract. -24897 area-System.Runtime Port System.Memory performance improvements to Convert.TryFromBase64Chars From https://github.com/dotnet/corefx/pull/24888#issuecomment-339646430 cc @jkotas, @stephentoub, @KrzysztofCwalina -24898 area-Infrastructure Disable alpine official tests build -24900 area-System.Runtime Nullable must be a readonly struct `Nullable` is known to be an immutable struct with sideeffect-free methods. C# compiler certainly relies on the implied purity for the soundness of null-propagating math as well as in various optimizations. Basically - while for other structs `readonly` is a good thing to have, if possible. I think the spec for `Nullable` should _demand_ that `Nullable` is formally `readonly`. In particular we consider methods like `HasValue` not mutating and therefore callable directly on references to readonly fields (which is currently unverifiable). When verification rules are updated to understand readonly references, we would need to special case `Nullable` methods. - Unless the type is `readonly` by the spec, then the behavior would be subsumed by the general treatment or `readonly` structs. +24897 area-System.Runtime Port System.Memory performance improvements to Convert.TryFromBase64Chars From https://github.com/dotnet/corefx/pull/24888#issuecomment-339646430 cc @jkotas, @stephentoub, @KrzysztofCwalina +24898 area-Infrastructure Disable alpine official tests build +24900 area-System.Runtime Nullable must be a readonly struct `Nullable` is known to be an immutable struct with sideeffect-free methods. C# compiler certainly relies on the implied purity for the soundness of null-propagating math as well as in various optimizations. Basically - while for other structs `readonly` is a good thing to have, if possible. I think the spec for `Nullable` should _demand_ that `Nullable` is formally `readonly`. In particular we consider methods like `HasValue` not mutating and therefore callable directly on references to readonly fields (which is currently unverifiable). When verification rules are updated to understand readonly references, we would need to special case `Nullable` methods. - Unless the type is `readonly` by the spec, then the behavior would be subsumed by the general treatment or `readonly` structs. 24901 area-System.IO Check that long relative paths work on Windows We should check that long relative paths work on Windows. It appears (from looking at the source) that they do not. Problem is in [PathInternal.Windows.cs][1]: `EnsureExtendedPrefixOverMaxPath` simply returns if the path is relative, rather than calling `GetFullPathNameW` and then adding the extended prefix. As a result, the underlying Windows API function will fail. This is a rather simple fix, though I don’t have a Windows machine to test it with. [1]: https://github.com/dotnet/corefx/blob/f2e440450e8b52317f08c21fe66f70141c9e933c/src/Common/src/System/IO/PathInternal.Windows.cs#L117 -24902 area-System.Runtime Remove Artificial Object Graph Limit in BinaryFormatter Since issue #16991 is solved we now can deserialize bigger object graphs with up to 12 million objects. As I have found since a long time ago: https://aloiskraus.wordpress.com/2017/04/23/the-definitive-serialization-performance-guide/ there are issues with the max object count BinaryFormatter can cope with because it contains a hard coded prime number table which ends at 6584983 objects. Please remove this artifical limit and do the same thing like e.g. in Dictionary which also needs prime numbers. -24903 area-Infrastructure Need a way to ignore build configurations when library is inbox For libraries like DirectoryServices which are inbox on a framework (https://github.com/dotnet/corefx/blob/master/src/System.DirectoryServices/pkg/System.DirectoryServices.pkgproj#L10) and only have a netstandard configuration without a netfx configuration because it shares the same identity as desktop, we need a way to tell our build system to ignore the netstandard configuration when building the netfx vertical. Without that we will end up selecting the netstandard asset and building and testing that when doing our netfx vertical testing. We can probably add a new property called something like IgnoreBuildConfigurations or InboxOnFramework and teach our configuration system (likely somewhere in https://github.com/dotnet/corefx/blob/master/buildvertical.targets#L70) to filter out and skip such configurations. +24902 area-System.Runtime Remove Artificial Object Graph Limit in BinaryFormatter Since issue #16991 is solved we now can deserialize bigger object graphs with up to 12 million objects. As I have found since a long time ago: https://aloiskraus.wordpress.com/2017/04/23/the-definitive-serialization-performance-guide/ there are issues with the max object count BinaryFormatter can cope with because it contains a hard coded prime number table which ends at 6584983 objects. Please remove this artifical limit and do the same thing like e.g. in Dictionary which also needs prime numbers. +24903 area-Infrastructure Need a way to ignore build configurations when library is inbox For libraries like DirectoryServices which are inbox on a framework (https://github.com/dotnet/corefx/blob/master/src/System.DirectoryServices/pkg/System.DirectoryServices.pkgproj#L10) and only have a netstandard configuration without a netfx configuration because it shares the same identity as desktop, we need a way to tell our build system to ignore the netstandard configuration when building the netfx vertical. Without that we will end up selecting the netstandard asset and building and testing that when doing our netfx vertical testing. We can probably add a new property called something like IgnoreBuildConfigurations or InboxOnFramework and teach our configuration system (likely somewhere in https://github.com/dotnet/corefx/blob/master/buildvertical.targets#L70) to filter out and skip such configurations. 24904 area-System.Net Remove dead code from System.Net.Sockets PR addresses issue #17905, project **System.Net.Sockets**. -24907 area-System.IO Path.GetFullPath difference between Windows and Linux @YvonneArnoldus commented on [Thu Oct 26 2017](https://github.com/dotnet/coreclr/issues/14707) I have written some code that uses Path.GetFullPath(). I have found some different results for the same paths between Windows and Linux in my Docker image. Windows: input: a\b\\..\\..\c.\ -> output: C:\code\fontoxml-sdk-schemacompiler\test\FontoXml.Server.Utils.XmlCatalog.Tests\bin\Debug\netcoreapp2.0\c\ Linux: a/b/../../c./ -> output: /app/test/FontoXml.Server.Utils.XmlCatalog.Tests/bin/Release/netcoreapp2.0/c./ It seems the current directory indicator isn't resolved on Linux as it is on Windows while the parent directory indicator is. -24909 area-Meta Ship .NET Framework compatibility pack A meta package to include all the libraries released from CoreFX in 2.0 that aren't already included in the [Microsoft.NETCore.App package](https://dotnet.myget.org/feed/dotnet-core/package/nuget/Microsoft.NETCore.App) (aka the shared framework) plus a series of new ports and necessary facades. Some are Windows only currently. Aim to release at least a complete preview in November. ## Spec https://github.com/dotnet/designs/pull/16 ## Previously shipped packages: Package ID | Link | Windows Only -- | -- | -- Microsoft.Win32.Registry | NuGet | Yes Microsoft.Win32.Registry.AccessControl | NuGet | Yes System.CodeDom | NuGet | System.Configuration.ConfigurationManager | NuGet | System.Data.SqlClient | NuGet | System.Drawing.Common | NuGet | No System.IO.FileSystem.AccessControl | NuGet | Yes System.IO.Packaging | NuGet | System.IO.Pipes.AccessControl | NuGet | Yes System.IO.Ports | NuGet | System.Reflection.Context | NuGet | System.Security.AccessControl | NuGet | Yes System.Security.Cryptography.Cng | NuGet | Yes System.Security.Cryptography.Pkcs | NuGet | Yes System.Security.Cryptography.ProtectedData | NuGet | Yes System.Security.Cryptography.Xml | NuGet | Yes System.Security.Permissions | NuGet | System.Security.Principal.Windows | NuGet | Yes System.ServiceModel.Duplex | NuGet | System.ServiceModel.Http | NuGet | System.ServiceModel.NetTcp | NuGet | System.ServiceModel.Primitives | NuGet | System.ServiceModel.Security | NuGet | System.ServiceProcess.ServiceController | NuGet | System.Text.Encoding.CodePages | NuGet | No System.Threading.AccessControl | NuGet | Yes ## New Packages: ID | | Remaining work | UWP? | Unix? -- | -- | -- | -- | -- | Updated Shims package | Authoring | | 14529 | System.Runtime.Caching | Test, Pkg | not yet | not yet 14762 | System.Management (WMI) | Tests, Pkg | no | not yet 3906 | System.Diagnostics.PerformanceCounter | PR | no | no 2089 | System.DirectoryServices | Pkg | no | no 2089 | System.DirectoryServices.Protocols | Pkg | no | not yet 2089 | System.DirectoryServices.AccountManagement | Pkg | no | no | System.ServiceModel.Syndication | Tests, Pkg | ? | yes 6913 | System.Diagnostics.EventLog | DONE | no | no 11545 | System.Drawing | DONE | no | yes 11857 | System.ComponentModel.Composition (MEF1) | Test, Pkg | ? | yes 13035 | System.Data.Odbc | DONE | no | yes 19771 | System.Data.DatasetExtensions | DONE | yes | yes 6024 | System.ServiceProcess.ServiceController & ServiceBase | DONE | no | no 5766 | System.Xaml | No plans | -- | -- 8723 | System.ServiceModel (WCF) Message Security | No plans | -- | -- 6920 | System.Addin | No plans | -- | -- 2394 | System.Activities (WF) | No plans | -- | -- -24910 area-System.Memory Using latest System.Memory with old S.N.V causes NU1605 package downgrade error "Since @weshaggard fixed https://github.com/dotnet/corefx/issues/24606 with https://github.com/dotnet/corefx/pull/24645, we have an issue where if we have an app targeting netcoreapp2.0 that references both System.Memory and an older version of System.Numerics.Vectors, we get a package downgrade error. `D:\Debugger\Template.csproj : error NU1605: Detected package downgrade: System.Numerics.Vectors from 4.5.0-preview1-25825-08 to 4.3.0. Reference the package directly from the project to select a different version. D:\Debugger\Template.csproj : error NU1605: Template -> System.Memory 4.5.0-preview1-25825-08 -> System.Numerics.Vectors (>= 4.5.0-preview1-25825-08) D:\Debugger\Template.csproj : error NU1605: Template -> System.Numerics.Vectors (>= 4.3.0)` This issue is reproducible for netcoreapp2.0 (but not for netcoreapp2.1). ```csproj Exe netcoreapp2.0 ``` - One workaround would be to update the application to target netcoreapp2.1. Why exactly does that resolve the package dependency issue? - Another workaround would be to explicitly reference the latest version of System.Numerics.Vectors (that System.Memory was built against). This shouldn't be required. **One solution for this issue would be to do the following (from https://github.com/dotnet/corefxlab/pull/1861#issuecomment-337747682):** > One thing to consider with System.Memory: shouldn't the netcoreapp2.0 implementation use the *inbox* version of System.Numerics.Vectors? If it did so we wouldn't emit a package dependency. How would we be able to do this? Any ideas how to resolve this issue? > You need to investigate how System.Memory is building for netcoreapp2.0 and where it is getting the System.Numerics.Vectors that it is building against. cc @KrzysztofCwalina, @ericstj, @weshaggard " -24913 area-System.Xml XPathNavigable.PrependChild/AppendChild not working for netcoreapp2.0 ## Description XPathNavigable.AppendChild and XPathNavigable.PrependChild are not behaving as expected for netcoreapp2.0 when the logic is present in ClassLibrary targetting netstandard1.4 [ConsoleApp7.zip](https://github.com/dotnet/corefx/files/1421267/ConsoleApp7.zip) ## Repro Steps 1. Unzip the attached project and open ConsoleApp7.sln 2. Run ConsoleApp7 project. ConsoleApp7 project refers ClassLibrary1 which as the logic to create xml file. 3. You will get this output ```xml ``` 4. Run ConsoleApp1 project. ConsoleApp1 project has the same code that is present in ClassLibrary1. 5. You will get this output ```xml C:\temp\r.testsettings true ``` ## Observation If you notice, there is a difference in the output of ConsoleApp7 and ConsoleApp1, even though same code is used. `navigator.PrependChild(settingsNode);`, PrependChild is not behaving as expected and is not appending setttingsNode. cc:@codito +24907 area-System.IO Path.GetFullPath difference between Windows and Linux xxx commented on [Thu Oct 26 2017](https://github.com/dotnet/coreclr/issues/14707) I have written some code that uses Path.GetFullPath(). I have found some different results for the same paths between Windows and Linux in my Docker image. Windows: input: a\b\\..\\..\c.\ -> output: C:\code\fontoxml-sdk-schemacompiler\test\FontoXml.Server.Utils.XmlCatalog.Tests\bin\Debug\netcoreapp2.0\c\ Linux: a/b/../../c./ -> output: /app/test/FontoXml.Server.Utils.XmlCatalog.Tests/bin/Release/netcoreapp2.0/c./ It seems the current directory indicator isn't resolved on Linux as it is on Windows while the parent directory indicator is. +24909 area-Meta Ship .NET Framework compatibility pack A meta package to include all the libraries released from CoreFX in 2.0 that aren't already included in the [Microsoft.NETCore.App package](https://dotnet.myget.org/feed/dotnet-core/package/nuget/Microsoft.NETCore.App) (aka the shared framework) plus a series of new ports and necessary facades. Some are Windows only currently. Aim to release at least a complete preview in November. ## Spec https://github.com/dotnet/designs/pull/16 ## Previously shipped packages: Package ID | Link | Windows Only -- | -- | -- Microsoft.Win32.Registry | NuGet | Yes Microsoft.Win32.Registry.AccessControl | NuGet | Yes System.CodeDom | NuGet | System.Configuration.ConfigurationManager | NuGet | System.Data.SqlClient | NuGet | System.Drawing.Common | NuGet | No System.IO.FileSystem.AccessControl | NuGet | Yes System.IO.Packaging | NuGet | System.IO.Pipes.AccessControl | NuGet | Yes System.IO.Ports | NuGet | System.Reflection.Context | NuGet | System.Security.AccessControl | NuGet | Yes System.Security.Cryptography.Cng | NuGet | Yes System.Security.Cryptography.Pkcs | NuGet | Yes System.Security.Cryptography.ProtectedData | NuGet | Yes System.Security.Cryptography.Xml | NuGet | Yes System.Security.Permissions | NuGet | System.Security.Principal.Windows | NuGet | Yes System.ServiceModel.Duplex | NuGet | System.ServiceModel.Http | NuGet | System.ServiceModel.NetTcp | NuGet | System.ServiceModel.Primitives | NuGet | System.ServiceModel.Security | NuGet | System.ServiceProcess.ServiceController | NuGet | System.Text.Encoding.CodePages | NuGet | No System.Threading.AccessControl | NuGet | Yes ## New Packages: ID | | Remaining work | UWP? | Unix? -- | -- | -- | -- | -- | Updated Shims package | Authoring | | 14529 | System.Runtime.Caching | Test, Pkg | not yet | not yet 14762 | System.Management (WMI) | Tests, Pkg | no | not yet 3906 | System.Diagnostics.PerformanceCounter | PR | no | no 2089 | System.DirectoryServices | Pkg | no | no 2089 | System.DirectoryServices.Protocols | Pkg | no | not yet 2089 | System.DirectoryServices.AccountManagement | Pkg | no | no | System.ServiceModel.Syndication | Tests, Pkg | ? | yes 6913 | System.Diagnostics.EventLog | DONE | no | no 11545 | System.Drawing | DONE | no | yes 11857 | System.ComponentModel.Composition (MEF1) | Test, Pkg | ? | yes 13035 | System.Data.Odbc | DONE | no | yes 19771 | System.Data.DatasetExtensions | DONE | yes | yes 6024 | System.ServiceProcess.ServiceController & ServiceBase | DONE | no | no 5766 | System.Xaml | No plans | -- | -- 8723 | System.ServiceModel (WCF) Message Security | No plans | -- | -- 6920 | System.Addin | No plans | -- | -- 2394 | System.Activities (WF) | No plans | -- | -- +24910 area-System.Memory Using latest System.Memory with old S.N.V causes NU1605 package downgrade error "Since xxx fixed https://github.com/dotnet/corefx/issues/24606 with https://github.com/dotnet/corefx/pull/24645, we have an issue where if we have an app targeting netcoreapp2.0 that references both System.Memory and an older version of System.Numerics.Vectors, we get a package downgrade error. `D:\Debugger\Template.csproj : error NU1605: Detected package downgrade: System.Numerics.Vectors from 4.5.0-preview1-25825-08 to 4.3.0. Reference the package directly from the project to select a different version. D:\Debugger\Template.csproj : error NU1605: Template -> System.Memory 4.5.0-preview1-25825-08 -> System.Numerics.Vectors (>= 4.5.0-preview1-25825-08) D:\Debugger\Template.csproj : error NU1605: Template -> System.Numerics.Vectors (>= 4.3.0)` This issue is reproducible for netcoreapp2.0 (but not for netcoreapp2.1). ```csproj Exe netcoreapp2.0 ``` - One workaround would be to update the application to target netcoreapp2.1. Why exactly does that resolve the package dependency issue? - Another workaround would be to explicitly reference the latest version of System.Numerics.Vectors (that System.Memory was built against). This shouldn't be required. **One solution for this issue would be to do the following (from https://github.com/dotnet/corefxlab/pull/1861#issuecomment-337747682):** > One thing to consider with System.Memory: shouldn't the netcoreapp2.0 implementation use the *inbox* version of System.Numerics.Vectors? If it did so we wouldn't emit a package dependency. How would we be able to do this? Any ideas how to resolve this issue? > You need to investigate how System.Memory is building for netcoreapp2.0 and where it is getting the System.Numerics.Vectors that it is building against. cc @KrzysztofCwalina, @ericstj, xxx " +24913 area-System.Xml XPathNavigable.PrependChild/AppendChild not working for netcoreapp2.0 ## Description XPathNavigable.AppendChild and XPathNavigable.PrependChild are not behaving as expected for netcoreapp2.0 when the logic is present in ClassLibrary targetting netstandard1.4 [ConsoleApp7.zip](https://github.com/dotnet/corefx/files/1421267/ConsoleApp7.zip) ## Repro Steps 1. Unzip the attached project and open ConsoleApp7.sln 2. Run ConsoleApp7 project. ConsoleApp7 project refers ClassLibrary1 which as the logic to create xml file. 3. You will get this output ```xml ``` 4. Run ConsoleApp1 project. ConsoleApp1 project has the same code that is present in ClassLibrary1. 5. You will get this output ```xml C:\temp\r.testsettings true ``` ## Observation If you notice, there is a difference in the output of ConsoleApp7 and ConsoleApp1, even though same code is used. `navigator.PrependChild(settingsNode);`, PrependChild is not behaving as expected and is not appending setttingsNode. cc:@codito 24914 area-Serialization XmlSerializer generates list of empty values for attribute including whitespace character. "## Description While using `System.Xml.Serialization.XmlSerializer` with `XmlSerializer.Deserialize()` method, the output for an attribute which is supposed to be mapped to a List outputs empty values if there is only a whitespace character in the attribute, Is this the intended behaviour? ## Reproduction Steps 1) Create a .NET Core 2.0.2 console application. 2) Copy the following code to `Program.cs` file. ```c# using System; using System.Collections.Generic; using System.IO; using System.Xml; using System.Xml.Serialization; namespace XmlTest { internal class Program { private static void Main() { string xml = """"; List outputList = new List(); using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { XmlSerializer serializer = new XmlSerializer(typeof(Test)); outputList = ((Test)serializer.Deserialize(reader)).List; } Console.WriteLine($""Input XML: {xml}""); Console.WriteLine($""Generated list's length: {outputList.Count}""); Console.WriteLine(""Listing the list contents:""); foreach (string output in outputList) { Console.WriteLine($""Content:'{output}', content length:{output.Length}""); } Console.WriteLine(""End of process. Press enter to exit...""); Console.ReadLine(); } } public class Test { [XmlAttribute(""list"")] public List List { get; set; } } } ``` 3) Run the code and read the console outputs. ## Observation The output seems like the result of code similar to the following: ```c# string test = "" ""; string[] parts = test.Split(' '); List output = new List(parts); ``` I couldn't find the spot where the serialization is happening in the code though, however if it's really something like this _and it is not the intended behaviour_, changing the `test.Split(' ')` piece to `test.Split(' ', StringSplitOptions.RemoveEmptyEntries)` should be fixing the issue." -24915 area-System.Runtime Update System.ObsoleteAttribute targets to include assembly ## Rationale Currently, `ObsoleteAttribute` can be used with types and members only which is very inconvenient when you need to obsolete the whole assembly. We already have quite a few cases in Xamarin but .NET is having the same problem with assemblies like System.Data.OracleClient which has been fully deprecated. ## Proposed API Add `AttributeTargets.Assembly` to existing list of AttributeUsage values ```csharp [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Delegate, Inherited = false)] public sealed class ObsoleteAttribute : Attribute ``` ## Details This change will also require C# compiler change to update the logic used to track ObsoleteAttribute. ## Related Issues ## Updates * Used the template as requested by @joperezr +24915 area-System.Runtime Update System.ObsoleteAttribute targets to include assembly ## Rationale Currently, `ObsoleteAttribute` can be used with types and members only which is very inconvenient when you need to obsolete the whole assembly. We already have quite a few cases in Xamarin but .NET is having the same problem with assemblies like System.Data.OracleClient which has been fully deprecated. ## Proposed API Add `AttributeTargets.Assembly` to existing list of AttributeUsage values ```csharp [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Delegate, Inherited = false)] public sealed class ObsoleteAttribute : Attribute ``` ## Details This change will also require C# compiler change to update the logic used to track ObsoleteAttribute. ## Related Issues ## Updates * Used the template as requested by @joperezr 24916 area-System.Runtime Investigate shim assembly load errors for exception serialization support in uap/uapaot configuration Related: https://github.com/dotnet/corefx/issues/24424 ``` (uapaot) Unable to find assembly 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a': - System.Configuration.ConfigurationErrorException - System.Configuration.ConfigurationErrorsException - System.Configuration.Provider.ProviderException (uapaot) Unable to find assembly 'System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089': - System.Runtime.Serialization.InvalidDataContractException (uapaot) Unable to find assembly 'System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089': - System.Transactions.TransactionAbortedException - System.Transactions.TransactionException - System.Transactions.TransactionInDoubtException - System.Transactions.TransactionManagerCommunicationException - System.Transactions.TransactionPromotionException (uap & uapaot) Unable to find assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35': - System.ComponentModel.DataAnnotations.ValidationException (uapaot) Unable to find assembly 'System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089': - System.Xml.XPath.XPathException - System.Xml.XmlException - System.Xml.Schema.XmlSchemaException - System.Xml.Schema.XmlSchemaInferenceException - System.Xml.Schema.XmlSchemaValidationException - System.Xml.Xsl.XsltCompileException - System.Xml.Xsl.XsltException ``` -24918 area-System.Net How to debug the source code of ServiceModel.Http (4.4.0) using Visual Studio 2017 "@SCKlausZ commented on [Thu Oct 26 2017](https://github.com/dotnet/core/issues/1048) Visual Studio 15.3.4 .net core 2.0.0 System.ServiceModel.Http NuGet package 4.4.0 I'm having a strange transient error when calling a web service and I would like to step into WinHttpHandler (and WinHttpRequestCallback) to get more information, but I just get an ""Source Not Available"". I have cloned both the coreclr and corefx repositories, I have setup VS2017 according to [Visual Studio Doc](https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger) and [issue 897](https://github.com/dotnet/core/issues/897), and I can step into things like System.Private.CoreLib.dll. In the Modules window, I can see that the System.ServiceModel.Http.pdb is loaded. I can find the source code in ...\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs. I can open the source file, and if I set a breakpoint it is brown (red?) as if it is enabled. But execution doesn't break at the breakpoint. I can set a breakpoint in ExceptionDispatchInfo, but when I try to switch to a frame in WinHttpHandler/WinHttpRequestCallback I get ""Source Not Available (see screendump). ![debugwinhttphandler](https://user-images.githubusercontent.com/33118160/32053847-c028aa3a-ba5c-11e7-94bf-06090700899c.png) Can I do something so that I can step into the source code for the System.ServiceModel.Http NuGet package? " -24919 area-System.Data System.Data.SQLClient throws an Exceoption by calling open Method @Martin-Stein commented on [Wed Oct 25 2017](https://github.com/dotnet/core/issues/1045) Hi folks, Its great to have direct SQL access, but my UWP Application, with target Fall Creators Update, runs into an IO Exception when I call open-Method on my SQLConnection object: System.IO.FileNotFoundException occurred. HResult=0x80070002 Message= Could not load file or assembly 'System.Threading.Thread, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. File not found at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) bei System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) bei System.Data.SqlClient.SqlConnection.Open() bei SQLDBDiagrammGenerator.UWP.MainPage.connect_Click(Object sender, RoutedEventArgs e) I have loaded System.data.common version 4.3.0 System.Data.SQLClient 4.4.0 Microsoft.NETCore.UniversalWindowsPlatform Ver. 6.0.1 via Nuget. What can it be, how can it be solved? Best regards, Martin -24920 area-System.IO GZipStream not working as expected on compress. @jgauffin commented on [Thu Oct 26 2017](https://github.com/dotnet/standard/issues/556) I'm using .NET standard and had ported some code from .NET 4.5.2. ## Expected outcome: `Dispose()` **_or_** `Flush()` should be enough for the compressed contents to get copied to the inner stream. ## Actual outcome ***Both*** Flush and Dispose are required to get the correct amount of bytes back from the gzipstream: ``` using (var gzip = new GZipStream(ms, CompressionLevel.Optimal, true)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); gzip.Flush(); } buffer = ms.ToArray(); ``` With just flush, I get 190 instead of 200 bytes: ```csharp using (var gzip = new GZipStream(ms, CompressionLevel.Optimal)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); gzip.Flush(); buffer = ms.ToArray(); } ``` With only Dispose i get 194 of the 200 expected bytes: ```csharp using (var gzip = new GZipStream(ms, CompressionLevel.Optimal, true)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); } buffer = ms.ToArray(); ``` --- @Petermarcu commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340018033) I am assuming you are trying to run the library on .NET Core? We need to get this bug to whichever implementation of .NET Standard you are running on. --- @jgauffin commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340019795) The .NET library is compiled as .NET standard. I discovered the error in a .NET ASP.NET Core MVC application and reproduced it in a .NET Core console application. --- @Petermarcu commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340022551) Great. Yeah, it will be compiled against .NET Standard but will run on an implementation of .NET Standard in one of the implementations. Sounds like this one is in .NET Core. I'm going to move this issue to the repo that has the Compression code for .NET Core. -24921 area-System.ComponentModel Adding System.ComponentModel.Composition Ports MEF1 sources cc: @danmosemsft @safern -24922 area-Infrastructure Update BuildTools, Standard to prerelease-02127-10, preview1-25827-06, respectively (master) -24923 area-System.ComponentModel Allow DisplayAttribute on Class declarations Contributes to #8123 cc: @divega -24924 area-Infrastructure Add blob feed as a restore source @jcagme @chcosta @weshaggard +24918 area-System.Net How to debug the source code of ServiceModel.Http (4.4.0) using Visual Studio 2017 "xxx commented on [Thu Oct 26 2017](https://github.com/dotnet/core/issues/1048) Visual Studio 15.3.4 .net core 2.0.0 System.ServiceModel.Http NuGet package 4.4.0 I'm having a strange transient error when calling a web service and I would like to step into WinHttpHandler (and WinHttpRequestCallback) to get more information, but I just get an ""Source Not Available"". I have cloned both the coreclr and corefx repositories, I have setup VS2017 according to [Visual Studio Doc](https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger) and [issue 897](https://github.com/dotnet/core/issues/897), and I can step into things like System.Private.CoreLib.dll. In the Modules window, I can see that the System.ServiceModel.Http.pdb is loaded. I can find the source code in ...\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs. I can open the source file, and if I set a breakpoint it is brown (red?) as if it is enabled. But execution doesn't break at the breakpoint. I can set a breakpoint in ExceptionDispatchInfo, but when I try to switch to a frame in WinHttpHandler/WinHttpRequestCallback I get ""Source Not Available (see screendump). ![debugwinhttphandler](https://user-images.githubusercontent.com/33118160/32053847-c028aa3a-ba5c-11e7-94bf-06090700899c.png) Can I do something so that I can step into the source code for the System.ServiceModel.Http NuGet package? " +24919 area-System.Data System.Data.SQLClient throws an Exceoption by calling open Method @Martin-Stein commented on [Wed Oct 25 2017](https://github.com/dotnet/core/issues/1045) Hi folks, Its great to have direct SQL access, but my UWP Application, with target Fall Creators Update, runs into an IO Exception when I call open-Method on my SQLConnection object: System.IO.FileNotFoundException occurred. HResult=0x80070002 Message= Could not load file or assembly 'System.Threading.Thread, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. File not found at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) bei System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) bei System.Data.SqlClient.SqlConnection.Open() bei SQLDBDiagrammGenerator.UWP.MainPage.connect_Click(Object sender, RoutedEventArgs e) I have loaded System.data.common version 4.3.0 System.Data.SQLClient 4.4.0 Microsoft.NETCore.UniversalWindowsPlatform Ver. 6.0.1 via Nuget. What can it be, how can it be solved? Best regards, Martin +24920 area-System.IO GZipStream not working as expected on compress. xxx commented on [Thu Oct 26 2017](https://github.com/dotnet/standard/issues/556) I'm using .NET standard and had ported some code from .NET 4.5.2. ## Expected outcome: `Dispose()` **_or_** `Flush()` should be enough for the compressed contents to get copied to the inner stream. ## Actual outcome ***Both*** Flush and Dispose are required to get the correct amount of bytes back from the gzipstream: ``` using (var gzip = new GZipStream(ms, CompressionLevel.Optimal, true)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); gzip.Flush(); } buffer = ms.ToArray(); ``` With just flush, I get 190 instead of 200 bytes: ```csharp using (var gzip = new GZipStream(ms, CompressionLevel.Optimal)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); gzip.Flush(); buffer = ms.ToArray(); } ``` With only Dispose i get 194 of the 200 expected bytes: ```csharp using (var gzip = new GZipStream(ms, CompressionLevel.Optimal, true)) { gzip.Write(jsonBytes, 0, jsonBytes.Length); } buffer = ms.ToArray(); ``` --- xxx commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340018033) I am assuming you are trying to run the library on .NET Core? We need to get this bug to whichever implementation of .NET Standard you are running on. --- xxx commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340019795) The .NET library is compiled as .NET standard. I discovered the error in a .NET ASP.NET Core MVC application and reproduced it in a .NET Core console application. --- xxx commented on [Fri Oct 27 2017](https://github.com/dotnet/standard/issues/556#issuecomment-340022551) Great. Yeah, it will be compiled against .NET Standard but will run on an implementation of .NET Standard in one of the implementations. Sounds like this one is in .NET Core. I'm going to move this issue to the repo that has the Compression code for .NET Core. +24921 area-System.ComponentModel Adding System.ComponentModel.Composition Ports MEF1 sources cc: xxx @safern +24922 area-Infrastructure Update BuildTools, Standard to prerelease-02127-10, preview1-25827-06, respectively (master) +24923 area-System.ComponentModel Allow DisplayAttribute on Class declarations Contributes to #8123 cc: @divega +24924 area-Infrastructure Add blob feed as a restore source xxx xxx @weshaggard 24925 area-System.IO WIP: Move OpenCommPort to api set It will fail until changes in buildtools (https://github.com/dotnet/buildtools/pull/1766) reach corefx. -24929 area-System.Memory ReadOnlySpan indexer now returns ref readonly Fixes https://github.com/dotnet/corefx/issues/24105 Related PR: https://github.com/dotnet/coreclr/pull/14727 cc @ektrah, @VSadov, @jkotas, @KrzysztofCwalina +24929 area-System.Memory ReadOnlySpan indexer now returns ref readonly Fixes https://github.com/dotnet/corefx/issues/24105 Related PR: https://github.com/dotnet/coreclr/pull/14727 cc @ektrah, @VSadov, @jkotas, @KrzysztofCwalina 24930 area-System.Net Remove dead code from System.Net.WebClient PR addresses issue #17905, project **System.Net.WebClient**. 24931 area-Meta Performance improvements (CoreFX) Epic This sub epic is to track specific investments to improve performance in CoreFX functionality - other than networking performance which is tracked [elsewhere](https://github.com/dotnet/corefx/issues/24742). We plan to use data - such as Azure profiler; customer traces; CLBG, TechEmpower - to target performance improvements where they matter most, generally in widely-used existing API. Candidate areas include: Timers, Async methods, Cancellation, Synchronization, Linq, Regex, Collections, Strings. Often changes will be candidates for porting to .NET Framework. Performance improvements are made all the time they do not necessarily need to be linked to this. This is to track specific focus areas. 24932 area-System.Net Remove dead code from System.Net.WebSocket.Client PR addresses issue #17905, project **System.Net.WebSocket.Client**. @@ -214,77 +214,77 @@ ID Area Title Description 24938 area-System.Runtime [Binary serialization] Dictionary does not roundtrip with full .NET Framework "Run this on .NET Core: ``` using System; using System.IO; using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary; class Program { static void Main(string[] args) { var d = new Dictionary(); d.Add(""Hello"", ""World""); using (var fs = new FileStream(""DataFile.dat"", FileMode.Create)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, d); } } } ``` Then run this on .NET Framework: ``` using System; using System.IO; using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary; class Program { static void Main(string[] args) { using (var fs = new FileStream(""DataFile.dat"", FileMode.Open)) { BinaryFormatter formatter = new BinaryFormatter(); var d = (Dictionary)formatter.Deserialize(fs); foreach (var e in d) Console.WriteLine($""{e.Key} {e.Value}""); } } } ``` Result: Deserialization on .NET Framework fails with: ``` Unhandled Exception: System.InvalidCastException: Object must implement IConvertible. at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.Runtime.Serialization.SerializationInfo.GetValue(String name, Type type) at System.Collections.Generic.Dictionary`2.OnDeserialization(Object sender) at System.Runtime.Serialization.ObjectManager.RaiseDeserializationEvent() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) at Program.Main(String[] args) ```" 24939 area-System.Collections Delete unnecessary internal forwarders The optimized enum comparers used can never show up in the binary serialization payload. We do not need the internal forwarders for them. 24940 area-System.Security Assistance with making first pull request I have implemented RIPE160 hashing as documented in the .NET 4.7.1 API reference by porting Antoon Bosselaers's C implementation to C#. As with most security algorithms, it is a bit messy, however I've tested it quite thoroughly. Is there anyone here who would like to hand-hold me while performing my first pull request? SSH.NET does not compile with .NET Core from the development branch because of lack of RIPE160 support. I considered making better #ifdefs in the SSH.NET code to detect and disable the feature, but reconsidered that adding RIPE160 was in fact the better solution. Thank you in advance... my repository is : https://github.com/darrenstarr/RIPEMD160.net and I believe I'm most of the way there. There is a single unit test which I don't understand well enough yet to provide the correct value as the result. I suppose once I properly get the code checked out and ready, it should be pretty easy to sort out. -24941 area-System.Diagnostics Segfault when calling Dispose() on a socket asynchronously accepting connections in AssemblyLoadContext.Default.Unloading Operating system: Debian Stretch Tested with both dotnet-runtime-2.0.0 debian package and git master (coreclr SHA 67a66156d0307b49522a13618522d289268bc1f9 and corefx SHA 389d7ee0630e71ff868b4d9ebcdcf8111d5acee3) Reproduction code: https://gist.github.com/LHCGreg/e2e044ae28f6cb5f786de742378c66ed Reproduction steps: ``` dotnet AsyncSocketStopTest.dll (from another terminal, replace 1008 with actual PID of program) kill -SIGTERM 1008 ``` Output: ``` Starting listening socket Started listening Registering SIGTERM handler Registering SIGINT handler Socket is accepting asynchronously. Kill this process with kill -SIGTERM 1008 In SIGTERM handler. Unregistered SIGTERM and SIGINT handlers in SIGTERM handler Signalling socket to stop accepting connections. Disposing of listening socket Caught OperationCanceledException from waiting on AcceptAsync(), good Unregistered SIGTERM and SIGINT handlers in Main Sleeping for 5 seconds. Segmentation fault ``` A stack trace from lldb: ``` OS Thread Id: 0x3ba (5) Child SP IP Call Site 00007FFFEF7FB6D0 00007ffff627ee40 [InlinedCallFrame: 00007fffef7fb6d0] System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.Guid, EtwEnableCallback) 00007FFFEF7FB6D0 00007fff7cc753c1 [InlinedCallFrame: 00007fffef7fb6d0] System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.Guid, EtwEnableCallback) 00007FFFEF7FB6C0 00007FFF7CC753C1 DomainNeutralILStubClass.IL_STUB_PInvoke(System.Guid, EtwEnableCallback) 00007FFFEF7FB780 00007FFF7CD00DBE System.Diagnostics.Tracing.EventPipeEventProvider.System.Diagnostics.Tracing.IEventProvider.EventRegister(System.Guid ByRef, EtwEnableCallback, Void*, Int64 ByRef) 00007FFFEF7FB7C0 00007FFF7CC3EE08 System.Diagnostics.Tracing.EventProvider.Register(System.Guid) 00007FFFEF7FB800 00007FFF7CC129E9 System.Diagnostics.Tracing.EventSource.Initialize(System.Guid, System.String, System.String[]) 00007FFFEF7FB890 00007FFF7CC4DA8C System.Diagnostics.Tracing.FrameworkEventSource..cctor() 00007FFFEF7FBBE0 00007ffff6344f07 [GCFrame: 00007fffef7fbbe0] 00007FFFEF7FC510 00007ffff6344f07 [HelperMethodFrame: 00007fffef7fc510] 00007FFFEF7FC650 00007FFF7CC1D3E4 System.Threading.ThreadPoolWorkQueue..ctor() 00007FFFEF7FC680 00007FFF7CD0BDCE System.Threading.ThreadPoolGlobals..cctor() 00007FFFEF7FCA40 00007ffff6344f07 [GCFrame: 00007fffef7fca40] 00007FFFEF7FD370 00007ffff6344f07 [HelperMethodFrame: 00007fffef7fd370] 00007FFFEF7FD4B0 00007FFF7CC1CD03 System.Threading.ThreadPool.QueueUserWorkItem(System.Threading.WaitCallback, System.Object) 00007FFFEF7FD4F0 00007FFF7D27FC96 System.Net.Sockets.SocketAsyncContext+AsyncOperation.TryCompleteOrAbortAsync(System.Net.Sockets.SocketAsyncContext, Boolean) 00007FFFEF7FD520 00007FFF7D280836 System.Net.Sockets.SocketAsyncContext+OperationQueue`1[[System.__Canon, System.Private.CoreLib]].StopAndAbort() 00007FFFEF7FD570 00007FFF7D27CB3C System.Net.Sockets.SocketAsyncContext.Close() 00007FFFEF7FD5A0 00007FFF7D27B832 System.Net.Sockets.SafeCloseSocket.ReleaseHandle() 00007FFFEF7FD680 00007ffff6344f07 [GCFrame: 00007fffef7fd680] 00007FFFEF7FD7F8 00007ffff6344f07 [GCFrame: 00007fffef7fd7f8] 00007FFFEF7FD890 00007ffff6344f07 [HelperMethodFrame_1OBJ: 00007fffef7fd890] System.Runtime.InteropServices.SafeHandle.InternalDispose() 00007FFFEF7FD9C0 00007FFF7D27B900 System.Net.Sockets.SafeCloseSocket.CloseAsIs() 00007FFFEF7FD9F0 00007FFF7D26C07F System.Net.Sockets.Socket.Dispose(Boolean) 00007FFFEF7FDAD0 00007FFF7D26C5EF System.Net.Sockets.Socket.Dispose() 00007FFFEF7FDB00 00007FFF7D169F27 AsyncSocketStopTest.Program.SigtermHandler(System.Runtime.Loader.AssemblyLoadContext) [D:\documents\Visual Studio 2017\Projects\SocketStoptest\AsyncSocketStopTest\Program.cs @ 29] 00007FFFEF7FDC30 00007ffff6344f07 [GCFrame: 00007fffef7fdc30] 00007FFFEF7FDCE8 00007ffff6344f07 [GCFrame: 00007fffef7fdce8] ``` The segfault only occurs when Disposing the socket in a handler for AssemblyLoadContext.Default.Unloading (SIGTERM). Disposing in a handler for Console.CancelKeyPress (SIGINT) does not segfault and works as expected, as does Disposing in response to user input. +24941 area-System.Diagnostics Segfault when calling Dispose() on a socket asynchronously accepting connections in AssemblyLoadContext.Default.Unloading Operating system: Debian Stretch Tested with both dotnet-runtime-2.0.0 debian package and git master (coreclr SHA 67a66156d0307b49522a13618522d289268bc1f9 and corefx SHA 389d7ee0630e71ff868b4d9ebcdcf8111d5acee3) Reproduction code: https://gist.github.com/LHCGreg/e2e044ae28f6cb5f786de742378c66ed Reproduction steps: ``` dotnet AsyncSocketStopTest.dll (from another terminal, replace 1008 with actual PID of program) kill -SIGTERM 1008 ``` Output: ``` Starting listening socket Started listening Registering SIGTERM handler Registering SIGINT handler Socket is accepting asynchronously. Kill this process with kill -SIGTERM 1008 In SIGTERM handler. Unregistered SIGTERM and SIGINT handlers in SIGTERM handler Signalling socket to stop accepting connections. Disposing of listening socket Caught OperationCanceledException from waiting on AcceptAsync(), good Unregistered SIGTERM and SIGINT handlers in Main Sleeping for 5 seconds. Segmentation fault ``` A stack trace from lldb: ``` OS Thread Id: 0x3ba (5) Child SP IP Call Site 00007FFFEF7FB6D0 00007ffff627ee40 [InlinedCallFrame: 00007fffef7fb6d0] System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.Guid, EtwEnableCallback) 00007FFFEF7FB6D0 00007fff7cc753c1 [InlinedCallFrame: 00007fffef7fb6d0] System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.Guid, EtwEnableCallback) 00007FFFEF7FB6C0 00007FFF7CC753C1 DomainNeutralILStubClass.IL_STUB_PInvoke(System.Guid, EtwEnableCallback) 00007FFFEF7FB780 00007FFF7CD00DBE System.Diagnostics.Tracing.EventPipeEventProvider.System.Diagnostics.Tracing.IEventProvider.EventRegister(System.Guid ByRef, EtwEnableCallback, Void*, Int64 ByRef) 00007FFFEF7FB7C0 00007FFF7CC3EE08 System.Diagnostics.Tracing.EventProvider.Register(System.Guid) 00007FFFEF7FB800 00007FFF7CC129E9 System.Diagnostics.Tracing.EventSource.Initialize(System.Guid, System.String, System.String[]) 00007FFFEF7FB890 00007FFF7CC4DA8C System.Diagnostics.Tracing.FrameworkEventSource..cctor() 00007FFFEF7FBBE0 00007ffff6344f07 [GCFrame: 00007fffef7fbbe0] 00007FFFEF7FC510 00007ffff6344f07 [HelperMethodFrame: 00007fffef7fc510] 00007FFFEF7FC650 00007FFF7CC1D3E4 System.Threading.ThreadPoolWorkQueue..ctor() 00007FFFEF7FC680 00007FFF7CD0BDCE System.Threading.ThreadPoolGlobals..cctor() 00007FFFEF7FCA40 00007ffff6344f07 [GCFrame: 00007fffef7fca40] 00007FFFEF7FD370 00007ffff6344f07 [HelperMethodFrame: 00007fffef7fd370] 00007FFFEF7FD4B0 00007FFF7CC1CD03 System.Threading.ThreadPool.QueueUserWorkItem(System.Threading.WaitCallback, System.Object) 00007FFFEF7FD4F0 00007FFF7D27FC96 System.Net.Sockets.SocketAsyncContext+AsyncOperation.TryCompleteOrAbortAsync(System.Net.Sockets.SocketAsyncContext, Boolean) 00007FFFEF7FD520 00007FFF7D280836 System.Net.Sockets.SocketAsyncContext+OperationQueue`1[[System.__Canon, System.Private.CoreLib]].StopAndAbort() 00007FFFEF7FD570 00007FFF7D27CB3C System.Net.Sockets.SocketAsyncContext.Close() 00007FFFEF7FD5A0 00007FFF7D27B832 System.Net.Sockets.SafeCloseSocket.ReleaseHandle() 00007FFFEF7FD680 00007ffff6344f07 [GCFrame: 00007fffef7fd680] 00007FFFEF7FD7F8 00007ffff6344f07 [GCFrame: 00007fffef7fd7f8] 00007FFFEF7FD890 00007ffff6344f07 [HelperMethodFrame_1OBJ: 00007fffef7fd890] System.Runtime.InteropServices.SafeHandle.InternalDispose() 00007FFFEF7FD9C0 00007FFF7D27B900 System.Net.Sockets.SafeCloseSocket.CloseAsIs() 00007FFFEF7FD9F0 00007FFF7D26C07F System.Net.Sockets.Socket.Dispose(Boolean) 00007FFFEF7FDAD0 00007FFF7D26C5EF System.Net.Sockets.Socket.Dispose() 00007FFFEF7FDB00 00007FFF7D169F27 AsyncSocketStopTest.Program.SigtermHandler(System.Runtime.Loader.AssemblyLoadContext) [D:\documents\Visual Studio 2017\Projects\SocketStoptest\AsyncSocketStopTest\Program.cs xxx 29] 00007FFFEF7FDC30 00007ffff6344f07 [GCFrame: 00007fffef7fdc30] 00007FFFEF7FDCE8 00007ffff6344f07 [GCFrame: 00007fffef7fdce8] ``` The segfault only occurs when Disposing the socket in a handler for AssemblyLoadContext.Default.Unloading (SIGTERM). Disposing in a handler for Console.CancelKeyPress (SIGINT) does not segfault and works as expected, as does Disposing in response to user input. 24942 area-System.Net Memory leak when HttpClient.GetByteArrayAsync() is used "There is no this problem with memory when using HttpClient.GetStreamAsync() and getting byte array manually. After research of source code I've found HttpClient.GetByteArrayAsyncCore() and here some code from this method: ``` if (contentLength.HasValue) { // If we got a content length, then we assume that it's correct and create a MemoryStream // to which the content will be transferred. That way, assuming we actually get the exact // amount we were expecting, we can simply return the MemoryStream's underlying buffer. buffer = new HttpContent.LimitMemoryStream(_maxResponseContentBufferSize, (int)contentLength.GetValueOrDefault()); await responseStream.CopyToAsync(buffer).ConfigureAwait(false); if (buffer.Length > 0) { return ((HttpContent.LimitMemoryStream)buffer).GetSizedBuffer(); } } ``` As you can see _buffer_ is not disposed after the method returned. May it is a reason of memory leak? To continue a theme of used memory I run this small program targeting .Net Framework 4.7 and .Net Core 2.0. ``` using System; using System.IO; using System.Net.Http; using System.Threading.Tasks; namespace TestCsharp { internal class Program { private static void Main() { HttpClient client = new HttpClient(); Parallel.For(0, 100, i => { using (Stream stream = client.GetStreamAsync(""https://music.nashe.com.ua/ANEBO_-_Holos_za_pochuttia.mp3"").Result) using (MemoryStream memory = new MemoryStream()) { stream.CopyTo(memory); byte[] b = memory.ToArray(); } }); Console.ReadKey(); } } } ``` Using Diagnostic Tools I've noticed different GC behaviour (in .Net Framework it calls frequently and memory releasings are larger after it). During work .Net Core uses up to 1 GB (.Net Framework no more than 400 MB) and when tasks are done Process Memory in .Net Core is near 500 MB whereas .Net Framework program uses near 50 MB. How to achive the same usage of memory in .Net Core? (Except of targeting .Net Framework)." 24943 area-System.Net Calling Dispose() on a socket inside a synchronous Accept() on Linux hangs "Operation System: Debian Stretch Tested with git master (coreclr SHA 67a66156d0307b49522a13618522d289268bc1f9 and corefx SHA 389d7ee) Reproduction code: https://gist.github.com/LHCGreg/a8a144da68d59f225a4b2c4bd1cbd05d This program takes three arguments. First argument is 'async' or 'sync' for whether to call Accept() or AcceptAsync(). Second argument is 'shutdown' to try to stop listening socket by calling Shutdown(SocketShutdown.Both), then Dispose(), or 'dispose' to just call Dispose(). Third argument is 'signal' to register signal handlers for SIGINT (or ctrl+c on windows) and SIGTERM (netcore only), or 'auto' to automatically try to stop the listening socket after 3 seconds. Reproduction steps: On Linux, run ``` dotnet SocketStopTest.dll sync dispose auto ``` Expected result: A SocketException is thrown from the Accept() call and the program terminates. Actual result: The program hangs inside Socket.Dispose(). On Windows, both full framework and .net core, calling Dispose() on a Socket that is in a synchronous Accept() call will break it out of the Accept() call with a SocketException. On Linux, it hangs inside the Dispose(). On Linux, calling Shutdown(SocketShutdown.Both) before calling Dispose() works and causes a SocketException to be thrown from the Accept(), although the exception message is a little weird: ""Invalid argument"". But on Windows, whether full framework or .net core, calling Shutdown(SocketShutdown.Both) apparently hangs when called from regular code or throws a SocketException on the Shutdown (and does not interrupt the Accept) when called from a ctrl+c handler with a message of ""A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied"" With AcceptAsync(), Dispose() generally works as expected on Windows full framework, Windows .net core, and Linux .net core, with the small exception of Windows full framework raising ObjectDisposedException from the accept task instead of SocketException. See outcome.txt in the gist for outcomes of all combinations of Windows net47 vs Windows netcore vs Linux netcore, Accept() vs. AsyncAccept(), Shutdown(SocketShutdown.Both) + Dispose() vs. just Dispose(), and socket stopped from delayed Task vs. ctrl+c/SIGINT handler vs. SIGTERM handler. It's also far from clear from documentation what the correct way of interrupting an Accepting socket is. One might guess to call Dispose() on it, but calling Shutdown would be another reasonable guess and works on Linux but not Windows." 24945 area-System.Linq Remove private reflection agaist RuntimeWrappedException constructor RuntimeWrappedException constructor is public in CoreLib now. It can be called directly. -24946 area-System.Runtime Expose RuntimeWrappedException constructor High-fidelity interpreters need to create RuntimeWrappedException. There is no public constructor for RuntimeWrappedException today. # Proposed API ```C# public class RuntimeWrappedException { public RuntimeWrappedException(object thrownObject); } ``` # Details The constructor is public in the CoreLib implementation already. It is used by our own `System.Linq.Expression` interpreter (see #24945). This issue is about exposing it in the contract so that 3rd party libraries have access to it as well, and do not have to resort to private reflection. -24947 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_GetWithInvalidHostHeader_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_GetWithInvalidHostHeader_ThrowsException` has failed. Assert.Throws() Failure\r Expected: typeof(System.Net.Http.HttpRequestException)\r Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 63 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 182 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 150 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 483 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__34.MoveNext() in E:\A\_work\1598\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 327 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 63 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 182 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 150 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FSendAsync_GetWithInvalidHostHeader_ThrowsException -24948 area-System.Runtime "Tests under: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests failed with ""System.Runtime.Serialization.SerializationException""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/RoundtripManyObjectsInOneStream` has failed. System.Runtime.Serialization.SerializationException : Type 'System.Diagnostics.Tracing.EventSourceException' in Assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 106 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 70 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, $BinaryFormatterWriter serWriter, Boolean fCheck) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectWriter.cs:line 92 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Boolean check) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryFormatter.cs:line 87 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtrForDynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtripManyObjectsInOneStream -24949 area-System.Threading "Test: System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests/ValidateDebuggerAttributes failed with ""System.InvalidOperationException""" Opened on behalf of @Jiayili1 The test `System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests/ValidateDebuggerAttributes` has failed. System.InvalidOperationException : Expected one DebuggerDisplayAttribute on EETypeRva:0x00063A00. Stack Trace: at System.Diagnostics.DebuggerAttributes.ValidateDebuggerDisplayReferences(Object obj) in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\DebuggerAttributes.cs:line 60 at System.Threading.Channels.Tests.ChannelTestBase.ValidateDebuggerAttributes() in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\ChannelTestBase.cs:line 27 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Threading.Channels.Tests/analysis/xunit/System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests~2FValidateDebuggerAttributes -24950 area-System.Threading "Test: System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests/ValidateInternalDebuggerAttributes failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests/ValidateInternalDebuggerAttributes` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Threading.Channels.Tests.SingleReaderUnboundedChannelTests.ValidateInternalDebuggerAttributes() in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\UnboundedChannelTests.cs:line 148 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Threading.Channels.Tests/analysis/xunit/System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests~2FValidateInternalDebuggerAttributes +24946 area-System.Runtime Expose RuntimeWrappedException constructor High-fidelity interpreters need to create RuntimeWrappedException. There is no public constructor for RuntimeWrappedException today. # Proposed API ```C# public class RuntimeWrappedException { public RuntimeWrappedException(object thrownObject); } ``` # Details The constructor is public in the CoreLib implementation already. It is used by our own `System.Linq.Expression` interpreter (see #24945). This issue is about exposing it in the contract so that 3rd party libraries have access to it as well, and do not have to resort to private reflection. +24947 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_GetWithInvalidHostHeader_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of xxx The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_GetWithInvalidHostHeader_ThrowsException` has failed. Assert.Throws() Failure\r Expected: typeof(System.Net.Http.HttpRequestException)\r Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 63 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 182 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 150 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 483 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__34.MoveNext() in E:\A\_work\1598\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 327 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 63 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 182 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 150 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FSendAsync_GetWithInvalidHostHeader_ThrowsException +24948 area-System.Runtime "Tests under: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests failed with ""System.Runtime.Serialization.SerializationException""" Opened on behalf of xxx The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/RoundtripManyObjectsInOneStream` has failed. System.Runtime.Serialization.SerializationException : Type 'System.Diagnostics.Tracing.EventSourceException' in Assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 106 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 70 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, $BinaryFormatterWriter serWriter, Boolean fCheck) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectWriter.cs:line 92 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Boolean check) in E:\A\_work\1598\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryFormatter.cs:line 87 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtrForDynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtripManyObjectsInOneStream +24949 area-System.Threading "Test: System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests/ValidateDebuggerAttributes failed with ""System.InvalidOperationException""" Opened on behalf of xxx The test `System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests/ValidateDebuggerAttributes` has failed. System.InvalidOperationException : Expected one DebuggerDisplayAttribute on EETypeRva:0x00063A00. Stack Trace: at System.Diagnostics.DebuggerAttributes.ValidateDebuggerDisplayReferences(Object obj) in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\DebuggerAttributes.cs:line 60 at System.Threading.Channels.Tests.ChannelTestBase.ValidateDebuggerAttributes() in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\ChannelTestBase.cs:line 27 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Threading.Channels.Tests/analysis/xunit/System.Threading.Channels.Tests.AsyncMultiReaderUnboundedChannelTests~2FValidateDebuggerAttributes +24950 area-System.Threading "Test: System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests/ValidateInternalDebuggerAttributes failed with ""System.NullReferenceException""" Opened on behalf of xxx The test `System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests/ValidateInternalDebuggerAttributes` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Threading.Channels.Tests.SingleReaderUnboundedChannelTests.ValidateInternalDebuggerAttributes() in E:\A\_work\1598\s\corefx\src\System.Threading.Channels\tests\UnboundedChannelTests.cs:line 148 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20171030.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171030.01/workItem/System.Threading.Channels.Tests/analysis/xunit/System.Threading.Channels.Tests.AsyncSingleReaderUnboundedChannelTests~2FValidateInternalDebuggerAttributes 24951 area-System.Data "SqlClient doesn't support ""always encrypt"" (column encryption setting=enabled)" "SqlClient from .NET 4.6+ supports SQL Server 2016's ""always encrypted"" option using the connection string option ""column encryption setting=enabled"". This allows application code to transparently read/write data from columns such that it is automatically encrypted before sending to the database server, in such a way that it cannot be decrypted from other systems without access to the relevant keys. Unfortunately it's not yet supported under .NET Core, which limits the use of this feature in security-conscious platforms (e.g. payment systems)." 24952 area-System.Net System.Net.Http.CurlException: SSL connect error I have an n-tier dynamic-ish application that currently builds its elastic indexes I'm app startup, while this was ok to get things going, I'd prefer to have a small CLI application/util that I can later re-use in some scripts and or run ad hoc if i need to do things like, creating a new instance, seeding mock data etc. When I use the exact same code that worked in my dotnetcore web apps startup, in my console app. I get the following issue. Invalid NEST response built from a unsuccessful low level call on PUT: /jobs-ng # Audit trail of this API call: - [1] BadRequest: Node: https://localhost:9200/ Took: 00:00:01.3948230 # OriginalException: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: SSL connect error at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Elasticsearch.Net.HttpConnection.Request[TReturn](RequestData requestData) in C:\Users\russ\source\elasticsearch-net-5.x\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:line 78 # Request: # Response: So far my best guess is that the native console app is missing something that the default AspNetCore web app projects provide, but as to what, I dont know? I have set `DisableDirectStreaming()` as per the error log, but still no change. I believe this might be a bug within dotnetcore, but I'm hoping someone knows of a work around, or way around this issue for the time being (other that having this code be part of the we apps startup?) -24953 area-System.Data System.Data.Odbc support of SQL Server datetime2, time, date, datetimeoffset types "According to [ODBC documentation](https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-date-time/data-type-support-for-odbc-date-and-time-improvements), ODBC supports the SQL 2008+ types like `datetime2`, `date`, `time` and `datetimeoffset`. But it seems impossible to use them with `System.Data.Odbc` available on MyGet since #13035, excepted `Date`. They look unsupported by this ODBC client, although I have the ""ODBC Driver 13 for SQL Server"" and its ""SQL Server Native Client 11.0"" driver: - Trying to read a `Time` column with a `System.Data.Odbc` reader `GetValue` yields: System.ArgumentException : Unknown SQL type - SS_TIME_EX. at System.Data.Odbc.TypeMap.FromSqlType(SQL_TYPE sqltype) at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i) at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i) - Trying to read a `Time` column with a `System.Data.Odbc` reader `GetTime` cuts fractional seconds. - Trying to set a `Time` parameter on an `OdbcCommand` cuts its fractional seconds. - Trying to set a `DateTime2` parameter on an `OdbcCommand` yields: System.ArgumentException : No mapping exists from DbType DateTime2 to a known OdbcType. at System.Data.Odbc.TypeMap.FromDbType(DbType dbType) at System.Data.Odbc.OdbcParameter.set_DbType(DbType value) - Setting a `DateTimeOffset` parameter yields the same error with just the db-type name accordingly changed. - Trying to read a `DateTimeOffset` column with a `System.Data.Odbc` reader `GetValue` yields: System.ArgumentException : Unknown SQL type - -155. at System.Data.Odbc.TypeMap.FromSqlType(SQL_TYPE sqltype) at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i) at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i) - Trying to read a `DateTimeOffset` column with a `System.Data.Odbc` reader `GetDateTime` cuts offset (but preserves fractional seconds (all 7 digits)). - Checking [`OdbcType`](https://github.com/dotnet/corefx/blob/master/src/System.Data.Odbc/src/System/Data/Odbc/OdbcType.cs) enumeration, it does not have types for `datetimeoffset` or `datetime2`. - Trying to dodge the trouble for `datetime2` by using `DbType.DateTime` instead for parameter: - Requires to set the parameter scale, otherwise fails with: System.Data.Odbc.OdbcException : ERROR [22008] [Microsoft][SQL Server Native Client 11.0]Datetime field overflow. Fractional second precision exceeds the scale specified in the parameter binding. at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) at System.Data.Odbc.OdbcCommand.ExecuteScalar() - When setting the parameter scale to 7, cuts fractional milliseconds even if the column in database is `datetime2`. This gives the one millisecond precision (compared to SQL Server `datetime` ten thirds of ms precision), but `datetime2` can go down to 100ns. Catching the query with SQL Server Profiler, we can see this: exec sp_executesql N'select count(*) from Types2008 where [DateTime2] = @P1', N'@P1 datetime2','2017-10-26 20:01:55.1630000' So the value is `datetime2` typed but has its fractional milliseconds zeroed out (yes my original value was not having them already zeroed). By the way this `datetime2` typing causes issues when the underlying table column is `datetime` instead, because it occurs in this case too. It causes `where` equality conditions to fail matching on two thirds of `datetime` values. Those ending with `3` or `7` milliseconds are not considered equal to the ""same"" value when typed `datetime2` with four trailing zero. Only those ending with 0 millisecond match. Those results were obtained with .Net Core 2.0, System.Data.Odbc 4.5.0-preview1-25829-02, a SQL Server Express 2016, and as connection string: Driver={SQL Server Native Client 11.0}; Server=.\sql_express; Database=test; Trusted_Connection=yes; Mars_Connection=yes; Here is a complete [gist](https://gist.github.com/fredericDelaporte/e1563b1510ce31a01e7d9dc9e9387e6d) of tests reproducing those issues. Those troubles exist with .Net Framework too, and are reported [here](https://connect.microsoft.com/VisualStudio/feedback/details/3143192)." -24954 area-System.Net " When calling web service in parallel: ""The server returned an invalid or unrecognized response""" Visual Studio 15.3.4 .net core 2.0.0 dotnet-svcutil 0.5.0.0 System.ServiceModel.Http NuGet package 4.4.0 I have created a console app calling a 3rd party web service, using dotnet-svcutil to generate the client. When I call the server asynchronously in parallel I sometimes get an HttpRequestException: An error occurred while sending the request. with an inner exception: WinHttpException (0x80072F78): The server returned an invalid or unrecognized response (NativeErrorCode: 12152) I can see that it's the HEAD call that fails. Using WireShark I can see that the server returns an HTTP 405 Method Not Allowed, with a body containing a soap envelope with a fault. If I create a client app in .net framework 4.7, I don't get the error. I think the server is a self-hosted wcf service - but I'm not sure. (If I look in System.ServiceModel.Channels.HttpChannelFactory.cs line 996, an exception during the head pre-auth request, should be ignored (but maybe I'm looking in the wrong place).) +24953 area-System.Data System.Data.Odbc support of SQL Server datetime2, time, date, datetimeoffset types "According to [ODBC documentation](https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-date-time/data-type-support-for-odbc-date-and-time-improvements), ODBC supports the SQL 2008+ types like `datetime2`, `date`, `time` and `datetimeoffset`. But it seems impossible to use them with `System.Data.Odbc` available on MyGet since #13035, excepted `Date`. They look unsupported by this ODBC client, although I have the ""ODBC Driver 13 for SQL Server"" and its ""SQL Server Native Client 11.0"" driver: - Trying to read a `Time` column with a `System.Data.Odbc` reader `GetValue` yields: System.ArgumentException : Unknown SQL type - SS_TIME_EX. at System.Data.Odbc.TypeMap.FromSqlType(SQL_TYPE sqltype) at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i) at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i) - Trying to read a `Time` column with a `System.Data.Odbc` reader `GetTime` cuts fractional seconds. - Trying to set a `Time` parameter on an `OdbcCommand` cuts its fractional seconds. - Trying to set a `DateTime2` parameter on an `OdbcCommand` yields: System.ArgumentException : No mapping exists from DbType DateTime2 to a known OdbcType. at System.Data.Odbc.TypeMap.FromDbType(DbType dbType) at System.Data.Odbc.OdbcParameter.set_DbType(DbType value) - Setting a `DateTimeOffset` parameter yields the same error with just the db-type name accordingly changed. - Trying to read a `DateTimeOffset` column with a `System.Data.Odbc` reader `GetValue` yields: System.ArgumentException : Unknown SQL type - -155. at System.Data.Odbc.TypeMap.FromSqlType(SQL_TYPE sqltype) at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i) at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i) - Trying to read a `DateTimeOffset` column with a `System.Data.Odbc` reader `GetDateTime` cuts offset (but preserves fractional seconds (all 7 digits)). - Checking [`OdbcType`](https://github.com/dotnet/corefx/blob/master/src/System.Data.Odbc/src/System/Data/Odbc/OdbcType.cs) enumeration, it does not have types for `datetimeoffset` or `datetime2`. - Trying to dodge the trouble for `datetime2` by using `DbType.DateTime` instead for parameter: - Requires to set the parameter scale, otherwise fails with: System.Data.Odbc.OdbcException : ERROR [22008] [Microsoft][SQL Server Native Client 11.0]Datetime field overflow. Fractional second precision exceeds the scale specified in the parameter binding. at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) at System.Data.Odbc.OdbcCommand.ExecuteScalar() - When setting the parameter scale to 7, cuts fractional milliseconds even if the column in database is `datetime2`. This gives the one millisecond precision (compared to SQL Server `datetime` ten thirds of ms precision), but `datetime2` can go down to 100ns. Catching the query with SQL Server Profiler, we can see this: exec sp_executesql N'select count(*) from Types2008 where [DateTime2] = @P1', N'xxx datetime2','2017-10-26 20:01:55.1630000' So the value is `datetime2` typed but has its fractional milliseconds zeroed out (yes my original value was not having them already zeroed). By the way this `datetime2` typing causes issues when the underlying table column is `datetime` instead, because it occurs in this case too. It causes `where` equality conditions to fail matching on two thirds of `datetime` values. Those ending with `3` or `7` milliseconds are not considered equal to the ""same"" value when typed `datetime2` with four trailing zero. Only those ending with 0 millisecond match. Those results were obtained with .Net Core 2.0, System.Data.Odbc 4.5.0-preview1-25829-02, a SQL Server Express 2016, and as connection string: Driver={SQL Server Native Client 11.0}; Server=.\sql_express; Database=test; Trusted_Connection=yes; Mars_Connection=yes; Here is a complete [gist](https://gist.github.com/fredericDelaporte/e1563b1510ce31a01e7d9dc9e9387e6d) of tests reproducing those issues. Those troubles exist with .Net Framework too, and are reported [here](https://connect.microsoft.com/VisualStudio/feedback/details/3143192)." +24954 area-System.Net " When calling web service in parallel: ""The server returned an invalid or unrecognized response""" Visual Studio 15.3.4 .net core 2.0.0 dotnet-svcutil 0.5.0.0 System.ServiceModel.Http NuGet package 4.4.0 I have created a console app calling a 3rd party web service, using dotnet-svcutil to generate the client. When I call the server asynchronously in parallel I sometimes get an HttpRequestException: An error occurred while sending the request. with an inner exception: WinHttpException (0x80072F78): The server returned an invalid or unrecognized response (NativeErrorCode: 12152) I can see that it's the HEAD call that fails. Using WireShark I can see that the server returns an HTTP 405 Method Not Allowed, with a body containing a soap envelope with a fault. If I create a client app in .net framework 4.7, I don't get the error. I think the server is a self-hosted wcf service - but I'm not sure. (If I look in System.ServiceModel.Channels.HttpChannelFactory.cs line 996, an exception during the head pre-auth request, should be ignored (but maybe I'm looking in the wrong place).) 24955 area-System.Threading Address System.Threading.Channels PR feedback Addressing a few pieces of feedback on the previous PR, plus some auto-cleanup. -24957 area-Infrastructure Adding required libraries to the net471 support package. cc: @weshaggard @AlexGhiondea @ericstj Adding the required libraries to the net471 support package. +24957 area-Infrastructure Adding required libraries to the net471 support package. cc: xxx xxx xxx Adding the required libraries to the net471 support package. 24958 area-Infrastructure Add information on myget feed and local SDK Does anything else need updating here? -24960 area-Infrastructure Symbols publishing broken "I do not know why (apparently) this assembly does not have a PDB. Could symbols publishing have previously ignored this? @vancem it may be best to change this to a warning until the issue is solved. https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?_a=summary&buildId=1096440 fyi @Anipik ``` 2017-10-30T13:06:59.0898179Z Converting portable PDB 'E:\A\_work\1491\b\pipelineRepository\bin\obj\SymbolsRequest\ExtractedPackages\10\lib\net461\Microsoft.Win32.Registry.AccessControl.dll'... 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: The ""ConvertPortablePdbsToWindowsPdbs"" task failed unexpectedly. [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: System.IO.InvalidDataException: Specified PE file doesn't have any PDB associated with it [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverterPortableToWindows.Convert(PEReader peReader, MetadataReader pdbReader, SymUnmanagedWriter pdbWriter, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, MetadataReader pdbReader, SymUnmanagedWriter pdbWriter, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, MetadataReader pdbReader, Stream targetPdbStream, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, Stream sourcePdbStream, Stream targetPdbStream, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.ConvertPortablePdbsToWindowsPdbs.Execute() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z Done executing task ""ConvertPortablePdbsToWindowsPdbs"" -- FAILED. 2017-10-30T13:06:59.0898179Z Done building target ""CreateWindowsPdbsFromPortablePdbs"" in project ""build.proj"" -- FAILED. 2017-10-30T13:06:59.0898179Z Done Building Project ""E:\A\_work\1491\b\pipelineRepository\build.proj"" (CreateWindowsPdbsFromPortablePdbs target(s)) -- FAILED. 2017-10-30T13:06:59.0898179Z ```" +24960 area-Infrastructure Symbols publishing broken "I do not know why (apparently) this assembly does not have a PDB. Could symbols publishing have previously ignored this? xxx it may be best to change this to a warning until the issue is solved. https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?_a=summary&buildId=1096440 fyi xxx ``` 2017-10-30T13:06:59.0898179Z Converting portable PDB 'E:\A\_work\1491\b\pipelineRepository\bin\obj\SymbolsRequest\ExtractedPackages\10\lib\net461\Microsoft.Win32.Registry.AccessControl.dll'... 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: The ""ConvertPortablePdbsToWindowsPdbs"" task failed unexpectedly. [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: System.IO.InvalidDataException: Specified PE file doesn't have any PDB associated with it [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverterPortableToWindows.Convert(PEReader peReader, MetadataReader pdbReader, SymUnmanagedWriter pdbWriter, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, MetadataReader pdbReader, SymUnmanagedWriter pdbWriter, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, MetadataReader pdbReader, Stream targetPdbStream, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DiaSymReader.Tools.PdbConverter.ConvertPortableToWindows(PEReader peReader, Stream sourcePdbStream, Stream targetPdbStream, PdbConversionOptions options) [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.ConvertPortablePdbsToWindowsPdbs.Execute() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z E:\A\_work\1491\b\pipelineRepository\Tools\Symbols.targets(508,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [E:\A\_work\1491\b\pipelineRepository\build.proj] 2017-10-30T13:06:59.0898179Z Done executing task ""ConvertPortablePdbsToWindowsPdbs"" -- FAILED. 2017-10-30T13:06:59.0898179Z Done building target ""CreateWindowsPdbsFromPortablePdbs"" in project ""build.proj"" -- FAILED. 2017-10-30T13:06:59.0898179Z Done Building Project ""E:\A\_work\1491\b\pipelineRepository\build.proj"" (CreateWindowsPdbsFromPortablePdbs target(s)) -- FAILED. 2017-10-30T13:06:59.0898179Z ```" 24962 area-System.Runtime Fix UpdateBlobs regression, reenabling ValueTuple tests on Core, add Dictionary serialization test case Related https://github.com/dotnet/corefx/pull/24962 The UpdateBlobs method which is manually triggered requires the netfx conditioned test cases to be at the end of the MemberData method. Otherwise it will replace wrong blobs. -24963 area-System.Net File URI cannot be parsed with @ sign The DocumentFormat.OpenXml library uses System.IO.Packaging to open office related documents. A user posted an issue where one of the package relationships uses a legacy URI format that fails to be parsed. This document opens fine in PowerPoint and would like to be able to open it with the .NET library. The URI in question has the form: ``` file:///\\contoso.com@SSL\user\content\path\projects\blank.xlsx ``` -24966 area-System.Data Connections from the pool are not reused when using async methods in parallel "Moved from https://github.com/aspnet/EntityFrameworkCore/issues/10169 reported by @wertzui Whem I'm using async methods (like `FirstOrDefaultAsync`) to get a result from the Database inside a `Parallel.For`, the connections are not correctly reused from the connection pool. The connections will rise to the configured `Max Pool Size` and after some time (around 1-2 minutes on my machine using localdb), exceptions will be thrown. Using either async methods and a normal for-loop or non-async methods an a Parallel.For-loop, the connections are properly reused and I can observe that a normal for-loop uses 1 connection and a Parallel.For-loop uses 4 connections which corresponds to MaxDegreeOfParallelism. ``` Exception message: System.InvalidOperationException occurred HResult=0x80131509 Message=Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Stack trace: at System.Data.Common.ADP.ExceptionWithStackTrace(Exception e) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.d__31.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.d__9.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.d__33`2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.d__33`2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.d__8.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.SelectAsyncEnumerable`2.SelectAsyncEnumerator.d__4.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.<_FirstOrDefault>d__82`1.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.TaskResultAsyncEnumerable`1.Enumerator.d__3.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.SelectAsyncEnumerable`2.SelectAsyncEnumerator.d__4.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at EfPoolingTest.UnitTest1.<>c.b__4_0(Int32 i) in C:\Users\xxx\documents\visual studio 2017\Projects\EfPoolingTest\EfPoolingTest\UnitTest1.cs:line 70 at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) ``` ### Steps to reproduce - Clone https://github.com/wertzui/EfPoolingTest and open the project - Run the ""ViewConnections.sql"" script to see that there are no connections open (beside the 2 used for the script) - Run the test ""NormalContextParallelAsyncConfigureAwaitFalse"" (I suggest running in Debug mode, so you can see the output) - Run the ""ViewConnections.sql"" script multiple times to see the connections increase. - After some time you will also get an exception - Run the other tests and observe the connection count ### Further technical details EF Core version: 2.0.0 (also tested with 1.1.3) Database Provider: Microsoft.EntityFrameworkCore.SqlServer/localdb Operating system: Windows 10 FCU IDE: Visual Studio 2017 15.4.1 " -24967 area-Infrastructure Add Microsoft.Windows.Compatibility.Shims package and rename compat pack Also fix package versions in compat pack to be 4.5.0-preview-* as some of the new packages have dependencies to the preview versions of the already shipped packages. cc: @weshaggard @danmosemsft @terrajobst -24968 area-Infrastructure init-tools.cmd hangs when running out of disk space After open the cmd file,I just get the following info. Installing dotnet cli... I have checked the log file > Running init-tools.cmd > Installing 'https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0/dotnet-sdk-2.0.0-win-x64.zip' to 'D:\ChuckLu\Git\GitHub\dotnet\corefx\Tools\dotnetcli\dotnet-sdk-2.0.0-win-x64.zip' > -24969 area-System.Net "Test: System.Net.WebSockets.Client.Tests.CancelTest/ConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CancelTest/ConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Throws() Failure Expected: typeof(System.Net.WebSockets.WebSocketException) Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Net.WebSockets.Client.Tests.CancelTest.d__1.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/tests/CancelTest.cs:line 28 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- Build : Master - 20171031.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release - RedHat.69.Amd64-x64 - Release - fedora.25.amd64-x64 - Release - Fedora.26.Amd64-x64 - Release - Ubuntu.1710.Amd64-x64 - Release - SLES.12.Amd64-x64 - Release - suse.422.amd64-x64 - Release - Ubuntu.1704.Amd64-x64 - Release - Ubuntu.1604.Amd64-x64 - Release - Debian.87.Amd64-x64 - Release - Debian.90.Amd64-x64 - Release - RedHat.73.Amd64-x64 - Release - RedHat.72.Amd64-x64 - Release - Ubuntu.1404.Amd64-x64 - Release - Centos.73.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171031.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) -24970 area-Meta StackExchange.Redis.StrongName, Version=1.2.4.0 The type 'ConnectionMultiplexer' exists in both 'StackExchange.Redis.StrongName, Version=1.2.4.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46' and 'StackExchange.Redis, Version=1.2.6.0, Culture=neutral, PublicKeyToken=null' Hunter.Authorization.ApiCommandServer ![image](https://user-images.githubusercontent.com/13499426/32214320-66e0c128-be59-11e7-8b7b-656c0ae00ea2.png) -24977 area-System.Security Add asynchronous overload of WindowsIdentity.RunImpersonated https://github.com/dotnet/corefx/issues/9996#issuecomment-307870746 https://github.com/aspnet/Home/issues/1805#issuecomment-339442334 ASP.NET Core is getting many requests for users that want to impersonate the authenticated user of the request and perform actions on their behalf. The main problem is that many of these actions are asynchronous, such as database access, but RunImpersonated is synchronous. Users have repeatedly made the mistake of starting an asynchronous operation within RunImpersonated and then returning the Task. Exiting RunImpersonated revokes the impersonation and can cause errors or reverting to the base identity in the Task. Proposal: `public static Task RunImpersonatedAsync(SafeAccessTokenHandle safeAccessTokenHandle, Func func)` `public static Task RunImpersonatedAsync(SafeAccessTokenHandle safeAccessTokenHandle, Func> func)` @brentschmaltz -24978 area-Infrastructure We should point to the release/2.0.0 version of standard We are not planning to ship a new stable version of the NETStandard.Library package in the 2.1 timeframe so we need to stick with what is currently shipping from the release/2.0.0 branch in standard repo. +24963 area-System.Net File URI cannot be parsed with xxx sign The DocumentFormat.OpenXml library uses System.IO.Packaging to open office related documents. A user posted an issue where one of the package relationships uses a legacy URI format that fails to be parsed. This document opens fine in PowerPoint and would like to be able to open it with the .NET library. The URI in question has the form: ``` file:///\\contoso.com@SSL\user\content\path\projects\blank.xlsx ``` +24966 area-System.Data Connections from the pool are not reused when using async methods in parallel "Moved from https://github.com/aspnet/EntityFrameworkCore/issues/10169 reported by xxx Whem I'm using async methods (like `FirstOrDefaultAsync`) to get a result from the Database inside a `Parallel.For`, the connections are not correctly reused from the connection pool. The connections will rise to the configured `Max Pool Size` and after some time (around 1-2 minutes on my machine using localdb), exceptions will be thrown. Using either async methods and a normal for-loop or non-async methods an a Parallel.For-loop, the connections are properly reused and I can observe that a normal for-loop uses 1 connection and a Parallel.For-loop uses 4 connections which corresponds to MaxDegreeOfParallelism. ``` Exception message: System.InvalidOperationException occurred HResult=0x80131509 Message=Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. Stack trace: at System.Data.Common.ADP.ExceptionWithStackTrace(Exception e) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.d__31.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.d__9.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.d__33`2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy.d__33`2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncQueryingEnumerable.AsyncEnumerator.d__8.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.SelectAsyncEnumerable`2.SelectAsyncEnumerator.d__4.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.<_FirstOrDefault>d__82`1.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.TaskResultAsyncEnumerable`1.Enumerator.d__3.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.SelectAsyncEnumerable`2.SelectAsyncEnumerator.d__4.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Query.Internal.AsyncLinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at EfPoolingTest.UnitTest1.<>c.b__4_0(Int32 i) in C:\Users\xxx\documents\visual studio 2017\Projects\EfPoolingTest\EfPoolingTest\UnitTest1.cs:line 70 at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) ``` ### Steps to reproduce - Clone https://github.com/wertzui/EfPoolingTest and open the project - Run the ""ViewConnections.sql"" script to see that there are no connections open (beside the 2 used for the script) - Run the test ""NormalContextParallelAsyncConfigureAwaitFalse"" (I suggest running in Debug mode, so you can see the output) - Run the ""ViewConnections.sql"" script multiple times to see the connections increase. - After some time you will also get an exception - Run the other tests and observe the connection count ### Further technical details EF Core version: 2.0.0 (also tested with 1.1.3) Database Provider: Microsoft.EntityFrameworkCore.SqlServer/localdb Operating system: Windows 10 FCU IDE: Visual Studio 2017 15.4.1 " +24967 area-Infrastructure Add Microsoft.Windows.Compatibility.Shims package and rename compat pack Also fix package versions in compat pack to be 4.5.0-preview-* as some of the new packages have dependencies to the preview versions of the already shipped packages. cc: xxx xxx @terrajobst +24968 area-Infrastructure init-tools.cmd hangs when running out of disk space After open the cmd file,I just get the following info. Installing dotnet cli... I have checked the log file > Running init-tools.cmd > Installing 'https://dotnetcli.azureedge.net/dotnet/Sdk/2.0.0/dotnet-sdk-2.0.0-win-x64.zip' to 'D:\ChuckLu\Git\GitHub\dotnet\corefx\Tools\dotnetcli\dotnet-sdk-2.0.0-win-x64.zip' > +24969 area-System.Net "Test: System.Net.WebSockets.Client.Tests.CancelTest/ConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of xxx The test `System.Net.WebSockets.Client.Tests.CancelTest/ConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Throws() Failure Expected: typeof(System.Net.WebSockets.WebSocketException) Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Net.WebSockets.Client.Tests.CancelTest.d__1.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/tests/CancelTest.cs:line 28 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- Build : Master - 20171031.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release - RedHat.69.Amd64-x64 - Release - fedora.25.amd64-x64 - Release - Fedora.26.Amd64-x64 - Release - Ubuntu.1710.Amd64-x64 - Release - SLES.12.Amd64-x64 - Release - suse.422.amd64-x64 - Release - Ubuntu.1704.Amd64-x64 - Release - Ubuntu.1604.Amd64-x64 - Release - Debian.87.Amd64-x64 - Release - Debian.90.Amd64-x64 - Release - RedHat.73.Amd64-x64 - Release - RedHat.72.Amd64-x64 - Release - Ubuntu.1404.Amd64-x64 - Release - Centos.73.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171031.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FConnectAsync_Cancel_ThrowsWebSocketExceptionWithMessage(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +24970 area-Meta StackExchange.Redis.StrongName, Version=1.2.4.0 The type 'ConnectionMultiplexer' exists in both 'StackExchange.Redis.StrongName, Version=1.2.4.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46' and 'StackExchange.Redis, Version=1.2.6.0, Culture=neutral, PublicKeyToken=null' Hunter.Authorization.ApiCommandServer ![image](https://user-images.githubusercontent.com/13499426/32214320-66e0c128-be59-11e7-8b7b-656c0ae00ea2.png) +24977 area-System.Security Add asynchronous overload of WindowsIdentity.RunImpersonated https://github.com/dotnet/corefx/issues/9996#issuecomment-307870746 https://github.com/aspnet/Home/issues/1805#issuecomment-339442334 ASP.NET Core is getting many requests for users that want to impersonate the authenticated user of the request and perform actions on their behalf. The main problem is that many of these actions are asynchronous, such as database access, but RunImpersonated is synchronous. Users have repeatedly made the mistake of starting an asynchronous operation within RunImpersonated and then returning the Task. Exiting RunImpersonated revokes the impersonation and can cause errors or reverting to the base identity in the Task. Proposal: `public static Task RunImpersonatedAsync(SafeAccessTokenHandle safeAccessTokenHandle, Func func)` `public static Task RunImpersonatedAsync(SafeAccessTokenHandle safeAccessTokenHandle, Func> func)` @brentschmaltz +24978 area-Infrastructure We should point to the release/2.0.0 version of standard We are not planning to ship a new stable version of the NETStandard.Library package in the 2.1 timeframe so we need to stick with what is currently shipping from the release/2.0.0 branch in standard repo. 24980 area-System.Memory Add Overlaps extension method to SpanExtensions Resolves #24103 API Review: https://github.com/dotnet/corefx/issues/24103#issuecomment-340856211 Previous PR with some details on the implementation: https://github.com/dotnet/corefx/pull/18731#issuecomment-296856781 24984 area-System.ComponentModel CultureInfoConverter added * Culture Converter added * space formatting * Expected and actual argument reordered * Removed to string * Reference Converter and its test added * fixing reference Converter * Skipping test on framework * CultureInfo added with others * Removed Reference Connverter Porting PR #24855 from master to release/2.0.0 branch Fixes #24755 Related: https://github.com/JamesNK/Newtonsoft.Json/issues/1457 -24985 area-System.Memory Operations on default(Memory) throw argument null exceptions e.g. ```C# private Memory _buffer; ... _buffer.TryGetArray(out ArraySegment s); ``` throws an `ArgumentNullException`, due to the implementation passing `null` to `ArraySegment`'s ctor. How do I know whether I can use `_buffer` or not? Should `TryGetArray` in this case return `false`? What about accessing `_buffer.Span`... it similarly throws, but should it just return an empty span? Or do we need a new property on it that tells me whether it's valid for use with various methods? I can do `_buffer.Equals(default)`, but that adds multiple unnecessary checks. cc: @ahsonkhan, @KrzysztofCwalina, @terrajobst -24986 area-System.Memory UTF8Parser parsing integers with 'N' format not implemented. Left-over debt from productizing Utf8Parser. Some questions need to be resolved (be compatible with .NET or actually insist that you know, commas appear only every third digit?) This affects at least 8 overloads (U/Int8/16/32/64). -24987 area-System.Memory UTF8Parser parsing TimeSpan not implemented. Left over debt from productizing Utf8Parser. Left undone for time reasons. +24985 area-System.Memory Operations on default(Memory) throw argument null exceptions e.g. ```C# private Memory _buffer; ... _buffer.TryGetArray(out ArraySegment s); ``` throws an `ArgumentNullException`, due to the implementation passing `null` to `ArraySegment`'s ctor. How do I know whether I can use `_buffer` or not? Should `TryGetArray` in this case return `false`? What about accessing `_buffer.Span`... it similarly throws, but should it just return an empty span? Or do we need a new property on it that tells me whether it's valid for use with various methods? I can do `_buffer.Equals(default)`, but that adds multiple unnecessary checks. cc: @ahsonkhan, @KrzysztofCwalina, @terrajobst +24986 area-System.Memory UTF8Parser parsing integers with 'N' format not implemented. Left-over debt from productizing Utf8Parser. Some questions need to be resolved (be compatible with .NET or actually insist that you know, commas appear only every third digit?) This affects at least 8 overloads (U/Int8/16/32/64). +24987 area-System.Memory UTF8Parser parsing TimeSpan not implemented. Left over debt from productizing Utf8Parser. Left undone for time reasons. 24990 area-System.Net TcpClient bug in branch release/1.1.0 (Unix) https://github.com/dotnet/corefx/blob/release/1.1.0/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.Unix.cs and https://github.com/dotnet/corefx/blob/release/1.1.0/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs ConnectAsync(string, int) will call ConnectAsyncCore(host, port); ConnectAsync(IPAddress[], int) will call ConnectAsyncCore(IPAddress[], int); ConnectAsync(IPAddress, int) will call BeginConnect In ConnectAsyncCore(host, port) and ConnectAsyncCore(IPAddress[], int) will do this if (_clientSocket != null) { throw new PlatformNotSupportedException(SR.net_sockets_connect_multiaddress_notsupported); } TcpClient.Client will call TcpClient.ClientCore TcpClient.ClientCore will set _clientSocket; So once we call TcpClient.Client, _clientSocket is not null, then ConnectAsyncCore(host, port) and ConnectAsyncCore(IPAddress[], int) will throw a wrong PlatformNotSupportedException -24994 area-System.IO Multi-server System.IO.Pipes tests hanging on OSX +24994 area-System.IO Multi-server System.IO.Pipes tests hanging on OSX 24996 area-System.Security Remove dead code from System.Security.Cryptography.Cng PR addresses issue #17905, project **System.Security.Cryptography.Cng**. -24997 area-Meta Mark applicable structs as readonly Fixes #24900 Related to https://github.com/dotnet/coreclr/pull/14789 Related to https://github.com/dotnet/corert/pull/4855 cc: @jkotas, @jaredpar, @VSadov, @tmat for System.Reflection.Metadata (which has the bulk of the changes) +24997 area-Meta Mark applicable structs as readonly Fixes #24900 Related to https://github.com/dotnet/coreclr/pull/14789 Related to https://github.com/dotnet/corert/pull/4855 cc: @jkotas, @jaredpar, @VSadov, xxx for System.Reflection.Metadata (which has the bulk of the changes) 24998 area-System.Reflection Enhance System.Type.FullName to return non-null for open generic types. "Consider ```csharp class Foo { } class H { } class Bar : Foo> { } ``` Currently `typeof (Bar<>).BaseType.FullName` returns `null`, as documented here https://docs.microsoft.com/en-us/dotnet/api/system.type.fullname?view=netcore-2.0#System_Type_FullName): > The fully qualified name of the type, including its namespace but not its assembly; or null if the current instance represents a generic type parameter, an array type, pointer type, or byref type based on a type parameter, or a generic type that is not a generic type definition but contains unresolved type parameters. I propose that instead `Type.FullName` is changed on .NET Core, .NET Framework and Xamarin to return a sensible string representation of open generic types. For the example above, for example, a reasonable result may be: `""Foo>""` " 25000 area-System.Security Remove dead code from System.Security.Cryptography.Csp. PR addresses issue #17905, project **System.Security.Cryptography.Csp**. 25002 area-Infrastructure How to build CoreFX for x86 Linux Hallo there im looking for a guide or a way to build the CoreFX project for an x86 Linux based Project. I have already sucessfully build coreclr for x86 following these [CoreCLR build guide](https://github.com/dotnet/coreclr/issues/13192#issuecomment-320188913). Now i need something like that for CoreFX, Im thankful for help. Greetings from Germany Philipp [EDIT] Fix link by @karelz 25003 area-System.Net Clean UdpReceiveResult - Deleted unnecesary check in GetHashCode() - Deleted unnecesary variables - Added Docs 25005 area-Meta System.Json bugs and perf issues "We're using `System.Json` quite extensively and have run into a couple of issues. Some looks like design (inconsistency) issues, some may be code bugs. 1. **Possible design bug**: Inconsistent handling of `null` array members: This works as expected: ```C# var a = new JsonArray(new JsonValue[] { ""abc"", 123, null }); // Note 3rd item is null ``` This alternative pattern `throws` inside `Add` due to an explicit `null` guard: ```C# var b = new JsonArray(new JsonValue[] { ""abc"", 123 }); b.Add(null); // ArgumentNullException ``` I see that the units support this behavior, but it seems to be an inconsistent design. Adding a `null` member to an array should be acceptable? 2. **Possible code bug**: `JsonType` derivation on `JsonPrimitive` seems faulty: ```C# var p = new JsonPrimitive(Guid.NewGuid()); // Guid var t = p.JsonType; // Expected: JsonType.String. Actual: JsonType.Number ``` (The nested conditionals here may be iffy: [JsonPrimitive.cs](https://github.com/dotnet/corefx/blob/master/src/System.Json/src/System/Json/JsonPrimitive.cs#L118-L120)) This case does not seem to be covered by any units. ```C# public override JsonType JsonType => _value == null || _value.GetType() == typeof(char) || _value.GetType() == typeof(string) || _value.GetType() == typeof(DateTime) || _value.GetType() == typeof(object) ? JsonType.String // DateTimeOffset || Guid || TimeSpan || Uri // <========= : _value.GetType() == typeof(bool) ? JsonType.Boolean : JsonType.Number; ``` 3. **Possible design bug**: `JsonPrimitive.ToString()` throws for some primitives. The following throws; I would expect to return the `Guid` in `string` form. Note that this is _not_ one of the expected errors that are explicitly `thrown` for some types (see notes on stack trace). I see that the units support this behavior, but it seems to be an inconsistent design. ```C# var p = new JsonPrimitive(Guid.NewGuid()); var t = p.JsonType; var s = p.ToString(); // FormatException // Note that GetFormattedString explicitly throws for some types // But that's not happening here, since it's making it all the way to Guid.ToString() System.FormatException Message=Format String can be only ""D"", ""d"", ""N"", ""n"", ""P"", ""p"", ""B"", ""b"", ""X"" or ""x"". Source=System.Private.CoreLib StackTrace: at System.Guid.ToString(String format, IFormatProvider provider) at System.Json.JsonPrimitive.GetFormattedString() at System.Json.JsonValue.SaveInternal(TextWriter w) at System.Json.JsonValue.ToString() ``` 4. **Perf: Equals is Expensive**: The straight-forward way to compare two `JsonValue` instances is to `ToString()` them both and then use a `StringComparer.Ordinal` comparer. But this is unnecessarily expensive considering the number of `string` allocs that need to happen internally while walking the tree. A better way would be to walk the tree regardless, but compare each individual `JsonObject`, `JsonArray` and `JsonPrimitive`. Something similar to this: [JsonValueComparer.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonValueComparer.cs) [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonEqualsBench.cs) (**2x improvement in both time & memory**) ```C# Method | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Gen 1 | Gen 2 | Allocated | ---------------- |----------:|----------:|----------:|-------:|---------:|---------:|---------:|--------:|----------:| ToStringEquals | 13.998 ms | 0.2782 ms | 0.5807 ms | 1.00 | 0.00 | 809.3750 | 434.3750 | 90.6250 | 6267600 B | NewtonDeepEquals | 2.729 ms | 0.0514 ms | 0.0456 ms | 0.20 | 0.01 | - | - | - | 0 B | SmartEquals | 6.817 ms | 0.1334 ms | 0.1638 ms | 0.49 | 0.02 | 789.0625 | - | - | 3323776 B | ``` 5. **Perf: Clone is Expensive**: Similar reasoning to the previous bullet: `ToString` works but is expensive due to allocations on the way out and redundant parsing on the way back in. Here's an alternative approach that walks the tree and clones each node explicitly: [JsonClone.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonExtensions.cs#L304-L430) (Unfortunately even it isn't as memory-efficient as it could be, since `SortedDictionary` does not expose an `initialCapacity` parameter in order to pre-allocate an exact-sized map.) [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonCloneBench.cs) (**2-3x improvement in both time & memory**) ``` Method | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Gen 1 | Gen 2 | Allocated | --------------- |---------:|----------:|----------:|-------:|---------:|----------:|---------:|--------:|----------:| ToStringClone | 29.21 ms | 0.5792 ms | 0.5948 ms | 1.00 | 0.00 | 1562.5000 | 812.5000 | 62.5000 | 9.92 MB | NewtonDeepClone | 19.16 ms | 0.3727 ms | 0.5101 ms | 0.66 | 0.02 | 1218.7500 | 562.5000 | 62.5000 | 7.02 MB | SmartClone | 10.14 ms | 0.1964 ms | 0.4311 ms | 0.35 | 0.02 | 671.8750 | 312.5000 | - | 3.94 MB | ``` " -25006 area-Infrastructure Update build definitions cc @karajas @dagood @mmitche +25006 area-Infrastructure Update build definitions cc xxx xxx @mmitche 25008 area-System.IO Should Directory.GetDirectories (and related methods) take a StringComparison overload? This matters less on Windows, but it's more significant on platforms where case-sensitive filesystems are more common. 25009 area-System.Memory Add null checks in Memory APIs to support default Fixes https://github.com/dotnet/corefx/issues/24985 Related PR: https://github.com/dotnet/coreclr/pull/14816 Also, applying the optimization from https://github.com/dotnet/coreclr/pull/14309 cc: @stephentoub, @KrzysztofCwalina 25010 area-System.Net Fix a few WebSocketHandle.Managed issues - At least until socket send/receives respect cancellation, we need to poll for cancellation after the handler's SendAsync completes. - We're unnecessarily allocating another CTS if no external cancellation was provided. - We're not disposing of the response object in the case of an error after SendAsync completes. Fixes https://github.com/dotnet/corefx/issues/24969 25011 area-System.Collections [API] Array and List have BinarySearch, but SortedList does not. This seems illogical. Binary search should be performed on an ordered list of items. Thus it's a natural operation for SortedList and not so natural for Array or List as they may be non-ordered causing BinarySearch to return incorrect answer. BCL should either add BinarySearch to SortedList or better yet make am extension method for IList. 25012 area-Infrastructure Facades, PermissionSets and RedistList are missing from Microsoft.TargetingPack.NETFramework.* nuget packages. I really don't know if these packages are still in use but I cannot find any other nuget packages closer to the .NET Framework developer packs than these. My use-case is to build CPS projects targeting net* TFMs on a Windows machine without Visual Studio and on \*NIX systems without mono. Referencing a single nuget with an assistance of `` makes this a simple task. As far as I know these missing directories are required for dotnet to build projects targeting net\* TFMs and to run tests for them. Is there any chance to get the packages updated or is there any other approach that should be taken for my use-case? I already know that [aspnet/BuildTools](https://github.com/aspnet/BuildTools) is using https://aspnetcore.blob.core.windows.net/buildtools/netfx/4.6.1/netfx.4.6.1.tar.gz But I found no out-of-the-box way of unpacking tar.gz files on Windows. In addition this archive contains targeting packs for all previous version of .NET Framework. -25013 area-System.Numerics HashCode based on xxHash32 "Fixes #14354 ## Description Works by maintaining the xxHash32 state variables (v1 -> v4, length) as well as a queue of values that fall outside of the block size (16 bytes/4 ints). Seed is assumed to be zero as there is no ctor in the proposal - however, it is possible to add a seed without changing the structure. It's possible to do this without `unsafe`, but the code is much more messy. This can be changed if adding `AllowUnsafeBlocks` to System.Runtime is a problem. Tests against known xxHash32 vectors are provided. The hashes were calculated by providing chunks from `""abcd0123efgh4567ijkl8901mnop2345qrst6789uvwx0123yzab""` (increasing in length 4) to [this site](https://asecuritysite.com/encryption/xxHash). The integers are hard-coded in the tests because System.Text.Encoding.ASCII is not available. ## [Performance](https://github.com/jcdickinson/Benchmarks/tree/corefx-hashcode) ``` ini BenchmarkDotNet=v0.10.9, OS=Windows 10 Redstone 2 (10.0.15063) Processor=Intel Core i7-4800MQ CPU 2.70GHz (Haswell), ProcessorCount=8 Frequency=2630627 Hz, Resolution=380.1375 ns, Timer=TSC .NET Core SDK=2.0.2 [Host] : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT DefaultJob : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT ``` | Method | Mean | Error | StdDev | Scaled | |------------------------ |---------:|----------:|----------:|-------:| | Unsafe | 79.98 ns | 1.4723 ns | 1.3772 ns | 1.00 | | 'Calls, No Inlining' | 40.34 ns | 0.1778 ns | 0.1576 ns | 0.50 | | 'Unrolled, No Inlining' | 12.19 ns | 0.0433 ns | 0.0384 ns | 0.15 | | 'Calls, Inlining' | 34.55 ns | 0.1372 ns | 0.1216 ns | 0.43 | | 'Unrolled, Inlining' | 12.22 ns | 0.0885 ns | 0.0785 ns | 0.15 | ### Updates [(staged)](https://github.com/jcdickinson/corefx/tree/feature-system-hashcode-staged) The test vectors are now normally disabled due to the per-AppDomain seed randomization, define `SYSTEM_HASHCODE_TESTVECTORS` to enable them (which will disable the seed randomization, setting it to 0). NB: this has been excluded from netfx builds in the tests csproj. ## Deviations from xxHash32 * Length is stored as the number of hashed fields (not bytes). It is multiplied at the end by 4 so that it behaves exactly like xxHash32. * Due to the lazy state initialization (a necessity because HashCode is a struct), it is possible that the structure will re-initialize at field 4,294,967,300 (and multiples thereof) only if the xxHash32 state variables are somehow all zero. This could be deferred by changing the length field to a `ulong` (but would make the struct larger than a cache line). 4,294,967,300 fields ought to be enough for anyone; you have bigger problems if you are creating hash codes based on that much data (15GB). * The code that mixes in individual bytes is omitted - this struct only accepts `int`. I'll be online in a few hours for feedback and to sign the CLA. ## 3rd Party Code Submission containing materials of a third party: | Author | Project | License | Comments | |------- |--------:|--------:|---------:| | Cyan4973 | [xxHash](https://github.com/Cyan4973/xxHash) | MIT | Reference, not copied code | cc: @stephentoub, @KrzysztofCwalina " +25013 area-System.Numerics HashCode based on xxHash32 "Fixes #14354 ## Description Works by maintaining the xxHash32 state variables (v1 -> v4, length) as well as a queue of values that fall outside of the block size (16 bytes/4 ints). Seed is assumed to be zero as there is no ctor in the proposal - however, it is possible to add a seed without changing the structure. It's possible to do this without `unsafe`, but the code is much more messy. This can be changed if adding `AllowUnsafeBlocks` to System.Runtime is a problem. Tests against known xxHash32 vectors are provided. The hashes were calculated by providing chunks from `""abcd0123efgh4567ijkl8901mnop2345qrst6789uvwx0123yzab""` (increasing in length 4) to [this site](https://asecuritysite.com/encryption/xxHash). The integers are hard-coded in the tests because System.Text.Encoding.ASCII is not available. ## [Performance](https://github.com/jcdickinson/Benchmarks/tree/corefx-hashcode) ``` ini BenchmarkDotNet=v0.10.9, OS=Windows 10 Redstone 2 (10.0.15063) Processor=Intel Core i7-4800MQ CPU 2.70GHz (Haswell), ProcessorCount=8 Frequency=2630627 Hz, Resolution=380.1375 ns, Timer=TSC .NET Core SDK=2.0.2 [Host] : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT DefaultJob : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT ``` | Method | Mean | Error | StdDev | Scaled | |------------------------ |---------:|----------:|----------:|-------:| | Unsafe | 79.98 ns | 1.4723 ns | 1.3772 ns | 1.00 | | 'Calls, No Inlining' | 40.34 ns | 0.1778 ns | 0.1576 ns | 0.50 | | 'Unrolled, No Inlining' | 12.19 ns | 0.0433 ns | 0.0384 ns | 0.15 | | 'Calls, Inlining' | 34.55 ns | 0.1372 ns | 0.1216 ns | 0.43 | | 'Unrolled, Inlining' | 12.22 ns | 0.0885 ns | 0.0785 ns | 0.15 | ### Updates [(staged)](https://github.com/jcdickinson/corefx/tree/feature-system-hashcode-staged) The test vectors are now normally disabled due to the per-AppDomain seed randomization, define `SYSTEM_HASHCODE_TESTVECTORS` to enable them (which will disable the seed randomization, setting it to 0). NB: this has been excluded from netfx builds in the tests csproj. ## Deviations from xxHash32 * Length is stored as the number of hashed fields (not bytes). It is multiplied at the end by 4 so that it behaves exactly like xxHash32. * Due to the lazy state initialization (a necessity because HashCode is a struct), it is possible that the structure will re-initialize at field 4,294,967,300 (and multiples thereof) only if the xxHash32 state variables are somehow all zero. This could be deferred by changing the length field to a `ulong` (but would make the struct larger than a cache line). 4,294,967,300 fields ought to be enough for anyone; you have bigger problems if you are creating hash codes based on that much data (15GB). * The code that mixes in individual bytes is omitted - this struct only accepts `int`. I'll be online in a few hours for feedback and to sign the CLA. ## 3rd Party Code Submission containing materials of a third party: | Author | Project | License | Comments | |------- |--------:|--------:|---------:| | Cyan4973 | [xxHash](https://github.com/Cyan4973/xxHash) | MIT | Reference, not copied code | cc: @stephentoub, xxx " 25014 area-System.Security Fix incorrect HAVE_OPENSSL_ALPN testing This define is incorrectly tested using #ifdef instead of #if, so build on e.g. Ubuntu 14.04 where this symbol is set to zero fails. 25015 area-Serialization Area-Serialization Sprint 126 The issue is for tracking issues to be done in sprint 126 (due by 11/10/2017) 25016 area-System.Net Stopping HttpListener doesn't free up address in use for some time on macOS (System.Net.HttpListenerException: Address already in use) "I'm receiving the following error: ``` Unhandled Exception: System.Net.HttpListenerException: Address already in use at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure) at System.Net.HttpEndPointManager.AddPrefixInternal(String p, HttpListener listener) at System.Net.HttpEndPointManager.AddListener(HttpListener listener) at System.Net.HttpListener.Start() at TestHttpListener.TestHttpListener.d__3.MoveNext() in /Users/tylerleonhardt/Desktop/CompSci/DotNET/Core/TestHttpListener/TestHttpListener.cs:line 29 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at TestHttpListener.TestHttpListener.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/tylerleonhardt/Desktop/CompSci/DotNET/Core/TestHttpListener/TestHttpListener.cs:line 13 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadPoolWorkQueue.Dispatch() ``` I am writing an http server using HttpListener (I need to use HttpListener) and I run into this exception after starting and stoping and starting the server. Here is my (watered down) library: ```c# using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace TestHttpListener { public class TestHttpListener { public bool KeepGoing = true; public void Start(int Port) { Thread listenerThread = new Thread(async () => { await SimpleListenerExample(Port); }); listenerThread.Start(); } public void Stop() { KeepGoing = false; } public async Task SimpleListenerExample(int Port) { // Create a listener. HttpListener listener = new HttpListener(); // Add the prefixes. listener.Prefixes.Add(""http://localhost:"" + Port + ""/""); listener.Start(); Console.WriteLine(""Listening...""); while (KeepGoing) { // Note: The GetContext method blocks while waiting for a request. HttpListenerContext context = await listener.GetContextAsync(); HttpListenerRequest request = context.Request; // Obtain a response object. HttpListenerResponse response = context.Response; // Construct a response. string responseString = "" Hello world!""; byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); // Get a response stream and write the response to it. response.ContentLength64 = buffer.Length; System.IO.Stream output = response.OutputStream; output.Write(buffer,0,buffer.Length); // You must close the output stream. output.Close(); } listener.Stop(); } } } ``` I've also tried this with `listener.Close()` And the file I'm using to verify this behavior is: ```c# using System; using System.Net.Http; using System.Threading.Tasks; namespace TestHttpListener { class Program { private static readonly HttpClient client = new HttpClient(); static void Main(string[] args) { Run().Wait(); } static async Task Run() { var app = new TestHttpListener(); app.Start(8081); await Task.Delay(TimeSpan.FromSeconds(2)); var response = await client.GetAsync(""http://localhost:8081""); app.Stop(); // need second GetAsync becuase HttpListener GetContextAsync does not take a cancellation token response = await client.GetAsync(""http://localhost:8081""); await Task.Delay(TimeSpan.FromSeconds(2)); app.Start(8081); Console.ReadLine(); } } } ``` I noticed there was [this issue](https://github.com/dotnet/corefx/issues/24562) with ""Address already in use"" issues but it seemed unrelated to HttpListener class so I opened this. This is using the .NET Command Line Tools - 2.0.0 macOS - v10.12.6 (16G29) aka Sierra Please let me know if there's any additional info I can provide." -25018 area-Meta System.Json: JsonArray does not handle null consistently "Inconsistent handling of `null` array members: This works as expected: ```C# var a = new JsonArray(new JsonValue[] { ""abc"", 123, null }); // Note 3rd item is null ``` This alternative pattern `throws` inside `Add` due to an explicit `null` guard: ```C# var b = new JsonArray(new JsonValue[] { ""abc"", 123 }); b.Add(null); // ArgumentNullException new JsonArray().Add(null); // Minimum repro ``` I see that the units support this behavior, but it seems to be an inconsistent design. Adding a `null` member to an array should be acceptable? _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), @karelz suggested I submit separately_ " -25019 area-Meta System.Json: JsonPrimitive.JsonType returns incorrect value `JsonType` derivation on `JsonPrimitive` seems faulty: ```C# var p = new JsonPrimitive(Guid.NewGuid()); // Guid var t = p.JsonType; // Expected: JsonType.String. Actual: JsonType.Number ``` I am fairly certain that `Guid` should not return `JsonType == Number` This case does not appear to be covered by any units, so it may be that the issue was never picked up. The nested conditionals here may be iffy: [JsonPrimitive.cs](https://github.com/dotnet/corefx/blob/master/src/System.Json/src/System/Json/JsonPrimitive.cs#L118-L120)) ```C# public override JsonType JsonType => _value == null || _value.GetType() == typeof(char) || _value.GetType() == typeof(string) || _value.GetType() == typeof(DateTime) || _value.GetType() == typeof(object) ? JsonType.String // DateTimeOffset || Guid || TimeSpan || Uri // <========= : _value.GetType() == typeof(bool) ? JsonType.Boolean : JsonType.Number; ``` _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), @karelz suggested I submit separately_ -25020 area-Meta System.Json: JsonPrimitive.ToString() throws unexpectedly "The following throws; I would expect to return the `Guid` in `string` form. Note that this is _not_ one of the expected errors that are explicitly `thrown` for some types (see notes on stack trace). I see that the units support this behavior, but it seems to be an inconsistent design. ```C# var p = new JsonPrimitive(Guid.NewGuid()); var t = p.JsonType; var s = p.ToString(); // FormatException // Note that GetFormattedString explicitly throws for some types // But that's not happening here, since it's making it all the way to Guid.ToString() System.FormatException Message=Format String can be only ""D"", ""d"", ""N"", ""n"", ""P"", ""p"", ""B"", ""b"", ""X"" or ""x"". Source=System.Private.CoreLib StackTrace: at System.Guid.ToString(String format, IFormatProvider provider) at System.Json.JsonPrimitive.GetFormattedString() at System.Json.JsonValue.SaveInternal(TextWriter w) at System.Json.JsonValue.ToString() ``` _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), @karelz suggested I submit separately_" -25021 area-Meta System.Json: JsonValue.Equals() is expensive "Comparing two `JsonValue` instances for equality is a common operation. The current idiom is expensive compared to the alternatives. The provided prototype shows a micro-bench result of **2-3x** improvement. # Rationale and Usage The straight-forward way to compare two `JsonValue` instances is to `ToString()` them both and then use a `StringComparer.Ordinal` comparer. But this is unnecessarily expensive considering the number of internal `string` allocs that need to happen internally while walking the tree. ```C# var json1 = new JsonObject(...); var json2 = new JsonObject(...); // Current idiom for equality var str1 = json1.ToString(); // Many internal string allocs var str2 = json2.ToString(); var equal = StringComparer.Ordinal.Equals(str1, str2); // Proposed method var equal = JsonValueComparer.Strict.Equals(json1, json2); ``` An alternatively approach is to migrate to `Newtonsoft.Linq.JValue` which has similar semantics and performs adequately. # Proposed API ```C# public abstract class JsonValueComparer : IEqualityComparer { /// /// Gets a that compares all fields of a /// value in a strict manner (ordinal string comparisons, deterministic ordering of members). /// public static JsonValueComparer Strict { get; } = new JsonStrictComparer(); protected JsonValueComparer() { } /// /// Determines whether the specified objects are equal. /// /// The first object to compare. /// The second object to compare. /// /// true if the specified objects are equal; otherwise, false. /// public abstract bool Equals(JsonValue x, JsonValue y); /// /// Returns a hash code for this instance. /// /// The object. /// /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. /// public abstract int GetHashCode(JsonValue obj); private sealed class JsonStrictComparer : JsonValueComparer {...} } ``` # Details A less expensive way would be to walk the internal tree and directly compare each individual member directly, without converting to a `string`. Ideally this requires the introduction of a new `JsonValueComparer` class, similar to this prototype: [JsonValueComparer.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonValueComparer.cs) We'd need to decide on comparison semantics. For example the `Strict` comparer enforces ordinal string rules and co-located members. Perhaps there are other comparers. # Open Questions * Since `JsonValue` is `abstract`, end users may have inherited from it. Not sure how to handle equality in those cases, perhaps just using a traditional `object.Equals` check as the final fallback? * Do we need other comparers that (say) allow different orderings of members. # Pull Request I am happy to PR myself, given a finalized design. # Benchmarks _Per recommendation from @danmosemsft, included `Newtonsoft` in benchmark_ [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonEqualsBench.cs) (**2-3x improvement in both time & memory**) ```C# Method | Mean | Error | StdDev | Scaled | Gen 0 | Gen 1 | Gen 2 | Allocated | ----------------- |----------:|----------:|----------:|-------:|---------:|---------:|--------:|----------:| ToStringEquals | 13.818 ms | 0.3012 ms | 0.3347 ms | 1.00 | 808.4677 | 435.9879 | 89.7177 | 6267582 B | NewtonDeepEquals | 3.028 ms | 0.0657 ms | 0.1854 ms | 0.22 | - | - | - | 0 B | JsonEquals | 5.940 ms | 0.1109 ms | 0.1187 ms | 0.43 | 531.2500 | - | - | 2258560 B | ``` _[See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), @karelz suggested I submit separately]_" -25022 area-Meta System.Json: Clone() is expensive Cloning a `JsonValue` instance is expensive compared to the alternatives. Add new `Clone` method to `JsonValue` that operates efficiently in terms of memory/GC. The provided prototype shows a micro-bench result of **2-3x** improvement. # Rationale and Usage There is no existing `Clone` method on `JsonValue`, but it's not an uncommon operation. The workaround is to roundtrip the value via `ToString` and `Parse`. But this is unnecessarily expensive considering the number of `string` allocs that need to happen on the way out and expensive, redundant parsing on the way back in. ```C# var json = new JsonObject(...); // Current idiom for cloning var str = JsonValue.ToString(); // Lots of string allocs var clone = (JsonObject)JsonValue.Parse(str); // Wasteful parsing // Proposed method var clone = (JsonObject)json.Clone(); ``` An alternatively approach is to migrate to `Newtonsoft.Linq.JValue` which has similar semantics, and though it's heavier in terms of memory (and api surface) it performs adequately. # Proposed API ```C# public class JsonValue : ICloneable // See open questions { // Existing interface unchanged // New method public JsonValue Clone(this JsonValue json) { ... } } ``` # Details This requires the introduction of a new `Clone` method on `JsonValue`, similar to this prototype: [JsonClone.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonExtensions.cs#L306-L444). This code walks the internal tree and clones each node explicitly. (Unfortunately even it isn't as memory-efficient as it could be, since the `internal SortedDictionary` does not expose an `initialCapacity` parameter in order to pre-allocate an exact-sized map.) # Open Questions * Should we implement `Clone` directly or utilize `ICloneable.Clone`. If the former, the return type would be polymorphic over `JsonValue` which means it's more strongly-typed than the latter, which would of course return `object`. * Since JsonValue is abstract, end users may have inherited from it. Not sure how to handle equality in those cases, perhaps just using a traditional object.Equals check as the final fallback? # Pull Request I am happy to PR myself, given the go-ahead. # Benchmarks _Per recommendation from @danmosemsft, included `Newtonsoft` in benchmark_ [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonCloneBench.cs) (**2-3x improvement in both time & memory**) ``` Method | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Gen 1 | Gen 2 | Allocated | --------------- |---------:|----------:|----------:|-------:|---------:|----------:|---------:|--------:|----------:| ToStringClone | 29.21 ms | 0.5792 ms | 0.5948 ms | 1.00 | 0.00 | 1562.5000 | 812.5000 | 62.5000 | 9.92 MB | NewtonDeepClone | 19.16 ms | 0.3727 ms | 0.5101 ms | 0.66 | 0.02 | 1218.7500 | 562.5000 | 62.5000 | 7.02 MB | SmartClone | 10.14 ms | 0.1964 ms | 0.4311 ms | 0.35 | 0.02 | 671.8750 | 312.5000 | - | 3.94 MB | ``` +25018 area-Meta System.Json: JsonArray does not handle null consistently "Inconsistent handling of `null` array members: This works as expected: ```C# var a = new JsonArray(new JsonValue[] { ""abc"", 123, null }); // Note 3rd item is null ``` This alternative pattern `throws` inside `Add` due to an explicit `null` guard: ```C# var b = new JsonArray(new JsonValue[] { ""abc"", 123 }); b.Add(null); // ArgumentNullException new JsonArray().Add(null); // Minimum repro ``` I see that the units support this behavior, but it seems to be an inconsistent design. Adding a `null` member to an array should be acceptable? _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), xxx suggested I submit separately_ " +25019 area-Meta System.Json: JsonPrimitive.JsonType returns incorrect value `JsonType` derivation on `JsonPrimitive` seems faulty: ```C# var p = new JsonPrimitive(Guid.NewGuid()); // Guid var t = p.JsonType; // Expected: JsonType.String. Actual: JsonType.Number ``` I am fairly certain that `Guid` should not return `JsonType == Number` This case does not appear to be covered by any units, so it may be that the issue was never picked up. The nested conditionals here may be iffy: [JsonPrimitive.cs](https://github.com/dotnet/corefx/blob/master/src/System.Json/src/System/Json/JsonPrimitive.cs#L118-L120)) ```C# public override JsonType JsonType => _value == null || _value.GetType() == typeof(char) || _value.GetType() == typeof(string) || _value.GetType() == typeof(DateTime) || _value.GetType() == typeof(object) ? JsonType.String // DateTimeOffset || Guid || TimeSpan || Uri // <========= : _value.GetType() == typeof(bool) ? JsonType.Boolean : JsonType.Number; ``` _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), xxx suggested I submit separately_ +25020 area-Meta System.Json: JsonPrimitive.ToString() throws unexpectedly "The following throws; I would expect to return the `Guid` in `string` form. Note that this is _not_ one of the expected errors that are explicitly `thrown` for some types (see notes on stack trace). I see that the units support this behavior, but it seems to be an inconsistent design. ```C# var p = new JsonPrimitive(Guid.NewGuid()); var t = p.JsonType; var s = p.ToString(); // FormatException // Note that GetFormattedString explicitly throws for some types // But that's not happening here, since it's making it all the way to Guid.ToString() System.FormatException Message=Format String can be only ""D"", ""d"", ""N"", ""n"", ""P"", ""p"", ""B"", ""b"", ""X"" or ""x"". Source=System.Private.CoreLib StackTrace: at System.Guid.ToString(String format, IFormatProvider provider) at System.Json.JsonPrimitive.GetFormattedString() at System.Json.JsonValue.SaveInternal(TextWriter w) at System.Json.JsonValue.ToString() ``` _See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), xxx suggested I submit separately_" +25021 area-Meta System.Json: JsonValue.Equals() is expensive "Comparing two `JsonValue` instances for equality is a common operation. The current idiom is expensive compared to the alternatives. The provided prototype shows a micro-bench result of **2-3x** improvement. # Rationale and Usage The straight-forward way to compare two `JsonValue` instances is to `ToString()` them both and then use a `StringComparer.Ordinal` comparer. But this is unnecessarily expensive considering the number of internal `string` allocs that need to happen internally while walking the tree. ```C# var json1 = new JsonObject(...); var json2 = new JsonObject(...); // Current idiom for equality var str1 = json1.ToString(); // Many internal string allocs var str2 = json2.ToString(); var equal = StringComparer.Ordinal.Equals(str1, str2); // Proposed method var equal = JsonValueComparer.Strict.Equals(json1, json2); ``` An alternatively approach is to migrate to `Newtonsoft.Linq.JValue` which has similar semantics and performs adequately. # Proposed API ```C# public abstract class JsonValueComparer : IEqualityComparer { /// /// Gets a that compares all fields of a /// value in a strict manner (ordinal string comparisons, deterministic ordering of members). /// public static JsonValueComparer Strict { get; } = new JsonStrictComparer(); protected JsonValueComparer() { } /// /// Determines whether the specified objects are equal. /// /// The first object to compare. /// The second object to compare. /// /// true if the specified objects are equal; otherwise, false. /// public abstract bool Equals(JsonValue x, JsonValue y); /// /// Returns a hash code for this instance. /// /// The object. /// /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. /// public abstract int GetHashCode(JsonValue obj); private sealed class JsonStrictComparer : JsonValueComparer {...} } ``` # Details A less expensive way would be to walk the internal tree and directly compare each individual member directly, without converting to a `string`. Ideally this requires the introduction of a new `JsonValueComparer` class, similar to this prototype: [JsonValueComparer.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonValueComparer.cs) We'd need to decide on comparison semantics. For example the `Strict` comparer enforces ordinal string rules and co-located members. Perhaps there are other comparers. # Open Questions * Since `JsonValue` is `abstract`, end users may have inherited from it. Not sure how to handle equality in those cases, perhaps just using a traditional `object.Equals` check as the final fallback? * Do we need other comparers that (say) allow different orderings of members. # Pull Request I am happy to PR myself, given a finalized design. # Benchmarks _Per recommendation from @danmosemsft, included `Newtonsoft` in benchmark_ [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonEqualsBench.cs) (**2-3x improvement in both time & memory**) ```C# Method | Mean | Error | StdDev | Scaled | Gen 0 | Gen 1 | Gen 2 | Allocated | ----------------- |----------:|----------:|----------:|-------:|---------:|---------:|--------:|----------:| ToStringEquals | 13.818 ms | 0.3012 ms | 0.3347 ms | 1.00 | 808.4677 | 435.9879 | 89.7177 | 6267582 B | NewtonDeepEquals | 3.028 ms | 0.0657 ms | 0.1854 ms | 0.22 | - | - | - | 0 B | JsonEquals | 5.940 ms | 0.1109 ms | 0.1187 ms | 0.43 | 531.2500 | - | - | 2258560 B | ``` _[See original issue summary [here](https://github.com/dotnet/corefx/issues/25005), xxx suggested I submit separately]_" +25022 area-Meta System.Json: Clone() is expensive Cloning a `JsonValue` instance is expensive compared to the alternatives. Add new `Clone` method to `JsonValue` that operates efficiently in terms of memory/GC. The provided prototype shows a micro-bench result of **2-3x** improvement. # Rationale and Usage There is no existing `Clone` method on `JsonValue`, but it's not an uncommon operation. The workaround is to roundtrip the value via `ToString` and `Parse`. But this is unnecessarily expensive considering the number of `string` allocs that need to happen on the way out and expensive, redundant parsing on the way back in. ```C# var json = new JsonObject(...); // Current idiom for cloning var str = JsonValue.ToString(); // Lots of string allocs var clone = (JsonObject)JsonValue.Parse(str); // Wasteful parsing // Proposed method var clone = (JsonObject)json.Clone(); ``` An alternatively approach is to migrate to `Newtonsoft.Linq.JValue` which has similar semantics, and though it's heavier in terms of memory (and api surface) it performs adequately. # Proposed API ```C# public class JsonValue : ICloneable // See open questions { // Existing interface unchanged // New method public JsonValue Clone(this JsonValue json) { ... } } ``` # Details This requires the introduction of a new `Clone` method on `JsonValue`, similar to this prototype: [JsonClone.cs](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json/JsonExtensions.cs#L306-L444). This code walks the internal tree and clones each node explicitly. (Unfortunately even it isn't as memory-efficient as it could be, since the `internal SortedDictionary` does not expose an `initialCapacity` parameter in order to pre-allocate an exact-sized map.) # Open Questions * Should we implement `Clone` directly or utilize `ICloneable.Clone`. If the former, the return type would be polymorphic over `JsonValue` which means it's more strongly-typed than the latter, which would of course return `object`. * Since JsonValue is abstract, end users may have inherited from it. Not sure how to handle equality in those cases, perhaps just using a traditional object.Equals check as the final fallback? # Pull Request I am happy to PR myself, given the go-ahead. # Benchmarks _Per recommendation from @danmosemsft, included `Newtonsoft` in benchmark_ [Benchmark](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Json.Bench/JsonCloneBench.cs) (**2-3x improvement in both time & memory**) ``` Method | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Gen 1 | Gen 2 | Allocated | --------------- |---------:|----------:|----------:|-------:|---------:|----------:|---------:|--------:|----------:| ToStringClone | 29.21 ms | 0.5792 ms | 0.5948 ms | 1.00 | 0.00 | 1562.5000 | 812.5000 | 62.5000 | 9.92 MB | NewtonDeepClone | 19.16 ms | 0.3727 ms | 0.5101 ms | 0.66 | 0.02 | 1218.7500 | 562.5000 | 62.5000 | 7.02 MB | SmartClone | 10.14 ms | 0.1964 ms | 0.4311 ms | 0.35 | 0.02 | 671.8750 | 312.5000 | - | 3.94 MB | ``` 25023 area-System.Collections System.Collections: Dictionary.Empty() "Concrete implementations of `IDictionary` and `IReadOnlyDictionary` do not provide `Empty` singletons, per those for `Array.Empty` and `Enumerable.Empty`. This proposal would permit the same idiom to be available for `Dictionary`. # Rationale and Usage This is a nice-to-have, but helps in environments where resources are constrained. The current idiom is to create a `new Dictionary(0)` but that incurs not-insignificant private state, and the semantics of 'immutably empty' are different to those for 'empty but not populated yet'. There are several data structures that build up maps of maps, for example `System.Json`. In scenarios where datasets are large, the cost and semantics of `pseudo-empty` add up. For scenarios where we have lists instead of maps, we already use `Array.Empty` or `Enumerable.Empty`. It would be consistent to provide the same facility for maps. ```C# var empty = Dictionary.Empty(); empty.Count; // 0 empty.IsReadOnly; // true empty[""hi""]; // KeyNotFound or InvalidOperation (?) empty.Add(...); // InvalidOperation Keys; // Array.Empty ``` # Proposed API ```C# public static class Dictionary // See open questions { /// /// Returns an empty dictionary that is immutable. /// /// The type of keys in the dictionary. /// The type of values in the dictionary. /// Returns an empty public static IDictionary Empty() => ; } public static class ReadOnlyDictionary { /// /// Returns an empty dictionary that is immutable. /// /// The type of keys in the dictionary. /// The type of values in the dictionary. /// Returns an empty public static IReadOnlyDictionary ReadOnlyEmpty() => ; } ``` # Details The singletons would return sensible defaults where possible for getters, though indexers would need to throw. Since `IsReadOnly==true`, mutators should throw too. All errors should align with those used when a traditional `Dictionary` has 'IsReadOnly=true`. # Open Questions * I am not sure what namespace & class name to use, since the chance of conflict (in user code) is high if we used `public static class Dictionary` to host the `Empty` singleton. Ditto for `ReadOnlyDictionary`. * I initially thought that the immutable nature of `Dictionary.Empty` might surprise or confuse users, but if we set `IsReadOnly=true` then it should cause less friction. `ReadOnlyDictionary.Empty` is already expected to be immutable, so it should not have the same problem. * Not sure exactly what errors to throw in the indexers and mutators. See previous bullet. Prototype comprises 3 classes; [ReadOnlyDictionary class](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Collections/Generic/ReadOnlyDictionary.cs), [Dictionary class](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Collections/Generic/Dictionary.cs) and [Singleton implementation](https://github.com/k2workflow/Clay/blob/master/src/SourceCode.Clay.Collections/Generic/EmptyDictionaryImpl.cs). # Pull Request I am happy to contribute the PR, when/if we gain consensus # Updates Happy to PR, but would especially need guidance on namespace, naming, decision on immutability. " -25024 area-System.Memory System.Memory doesn't work on UWP "Create a new blank UWP app. Ensure you set Target version and Min Version to ""Windows 10 Fall Creators Update (10.0; Build 16299)"" Add System.Memory Version=""4.5.0-preview1-25831-01"" nuget package. Write some code ``` Span foo = new int[5]; ``` Build. This doesn't compile, saying there is no ""Span"" type. Now add a reference to the latest UWP package: ``` 6.1.0-preview1-25902-01 ``` which has the ref type for Span. Build. You get an error: ``` Payload contains two or more files with the same destination path 'System.Memory.dll'. Source files: C:\Users\eerhardt\.nuget\packages\runtime.win10-x64.microsoft.netcore.universalwindowsplatform\6.1.0-preview1-25902-01\runtimes\win10-x64\lib\uap10.0.15138\System.Memory.dllC:\Users\eerhardt\.nuget\packages\system.memory\4.5.0-preview1-25831-01\runtimes\win\lib\uap10.0.15138\System.Memory.dll ``` /cc @ahsonkhan @KrzysztofCwalina " -25025 area-System.Net Networking - SocketsHttpHandler Epic -25026 area-System.Threading [suggestion] add api to read/write multiple values from System.Threading.Channels right now im using buffered channel and the overhead of locking is currently limiting throughput. i limit the buffer to 10000 items and most of the time the buffer is full so i i guess i could read more than one item at a time to improve. -25027 area-System.Xml Some Xml tests projects do not run tests with /t:BuildAndTest "Issue found here: https://github.com/dotnet/corefx/issues/16646#issuecomment-341535914 I have confirmed this on my box and found that the issue is that many tests folders are missing Configuration.props cc: @WinCPP I'll send PR with the fix shortly. @WinCPP to unblock yourself you can add Configuration.props next to the csproj with content ``` netstandard; ```" +25024 area-System.Memory System.Memory doesn't work on UWP "Create a new blank UWP app. Ensure you set Target version and Min Version to ""Windows 10 Fall Creators Update (10.0; Build 16299)"" Add System.Memory Version=""4.5.0-preview1-25831-01"" nuget package. Write some code ``` Span foo = new int[5]; ``` Build. This doesn't compile, saying there is no ""Span"" type. Now add a reference to the latest UWP package: ``` 6.1.0-preview1-25902-01 ``` which has the ref type for Span. Build. You get an error: ``` Payload contains two or more files with the same destination path 'System.Memory.dll'. Source files: C:\Users\eerhardt\.nuget\packages\runtime.win10-x64.microsoft.netcore.universalwindowsplatform\6.1.0-preview1-25902-01\runtimes\win10-x64\lib\uap10.0.15138\System.Memory.dllC:\Users\eerhardt\.nuget\packages\system.memory\4.5.0-preview1-25831-01\runtimes\win\lib\uap10.0.15138\System.Memory.dll ``` /cc xxx xxx " +25025 area-System.Net Networking - SocketsHttpHandler Epic +25026 area-System.Threading [suggestion] add api to read/write multiple values from System.Threading.Channels right now im using buffered channel and the overhead of locking is currently limiting throughput. i limit the buffer to 10000 items and most of the time the buffer is full so i i guess i could read more than one item at a time to improve. +25027 area-System.Xml Some Xml tests projects do not run tests with /t:BuildAndTest "Issue found here: https://github.com/dotnet/corefx/issues/16646#issuecomment-341535914 I have confirmed this on my box and found that the issue is that many tests folders are missing Configuration.props cc: xxx I'll send PR with the fix shortly. xxx to unblock yourself you can add Configuration.props next to the csproj with content ``` netstandard; ```" 25029 area-System.Diagnostics System.Diagnostics.Tracing.Tests: BasicEventSourceTests.TestEventCounter: Test_Write_Metric_EventListener "Failed on Ubuntu 16.04. `Unhandled Exception of Type BasicEventSourceTests.EventTestHarness+EventTestHarnessException` https://mc.dot.net/#/user/krwq/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/12f35b6c1d977d376e10916e883c49c8ffa8fbc4/workItem/System.Diagnostics.Tracing.Tests/analysis/xunit/BasicEventSourceTests.TestEventCounter~2FTest_Write_Metric_EventListener
Logc__DisplayClass2_2.b__7(List`1 evts) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestEventCounter.cs:line 228 at BasicEventSourceTests.EventTestHarness.<>c__DisplayClass2_0.b__0(Event data) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/Harness/EventTestHarness.cs:line 77 at System.Diagnostics.Tracing.EventSource.DispatchToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) in /root/coreclr/src/mscorlib/shared/System/Diagnostics/Tracing/EventSource.cs:line 2271 *********** END EXCEPTION INFO ************* ************* LOGGING MESSAGES *************** 35:04.544 : STARTING Sub-Test EventCounter: Log multiple events in multiple periods 35:04.545 : Sending command MyEventSource to EventSource Enable Options
Stack trace ``` at BasicEventSourceTests.EventTestHarness.RunTests(List`1 tests, Listener listener, EventSource source, FilteringOptions options) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/Harness/EventTestHarness.cs:line 167 at BasicEventSourceTests.TestEventCounter.Test_Write_Metric(Listener listener) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestEventCounter.cs:line 275 at BasicEventSourceTests.TestEventCounter.Test_Write_Metric_EventListener() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestEventCounter.cs:line 59 ----- Inner Stack Trace ----- at BasicEventSourceTests.TestEventCounter.<>c__DisplayClass2_2.b__7(List`1 evts) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestEventCounter.cs:line 228 at BasicEventSourceTests.EventTestHarness.<>c__DisplayClass2_0.b__0(Event data) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/Harness/EventTestHarness.cs:line 77 at System.Diagnostics.Tracing.EventSource.DispatchToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) in /root/coreclr/src/mscorlib/shared/System/Diagnostics/Tracing/EventSource.cs:line 2271 ```
" 25032 area-Meta Start switching System.Native from C++ to C Motivation: Sharing code between .NET Core and Mono. -25033 area-System.Net "Test: System.Net.Security.Tests.SslStreamAlpnTests/SslStream_StreamToStream_Alpn_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamAlpnTests/SslStream_StreamToStream_Alpn_Success(clientProtocols: [http/1.1, h2], serverProtocols: [h2], expected: h2)` has failed. Assert.Equal() Failure Expected: h2 Actual: (null) Stack Trace: at System.Net.Security.Tests.SslStreamAlpnTests.SslStream_StreamToStream_Alpn_Success(List`1 clientProtocols, List`1 serverProtocols, SslApplicationProtocol expected) in /root/corefx-1108295/src/System.Net.Security/tests/FunctionalTests/SslStreamAlpnTests.cs:line 113 Build : Master - 20171103.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171103.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamAlpnTests~2FSslStream_StreamToStream_Alpn_Success(clientProtocols:%20%5Bhttp~2F1.1,%20h2%5D,%20serverProtocols:%20%5Bh2%5D,%20expected:%20h2) +25033 area-System.Net "Test: System.Net.Security.Tests.SslStreamAlpnTests/SslStream_StreamToStream_Alpn_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of xxx The test `System.Net.Security.Tests.SslStreamAlpnTests/SslStream_StreamToStream_Alpn_Success(clientProtocols: [http/1.1, h2], serverProtocols: [h2], expected: h2)` has failed. Assert.Equal() Failure Expected: h2 Actual: (null) Stack Trace: at System.Net.Security.Tests.SslStreamAlpnTests.SslStream_StreamToStream_Alpn_Success(List`1 clientProtocols, List`1 serverProtocols, SslApplicationProtocol expected) in /root/corefx-1108295/src/System.Net.Security/tests/FunctionalTests/SslStreamAlpnTests.cs:line 113 Build : Master - 20171103.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171103.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamAlpnTests~2FSslStream_StreamToStream_Alpn_Success(clientProtocols:%20%5Bhttp~2F1.1,%20h2%5D,%20serverProtocols:%20%5Bh2%5D,%20expected:%20h2) 25034 area-Meta Please support a modern very high performance version of System.IO.Log I'm looking for an very high performance version Algorithms for Recovery and Isolation Exploiting Semantics (ARIES) like .net standard/core namspace. It does not need to be exactly ARIES but would need to be sufficent to be the start of a number of different data oriented projects that choose .NET. I would use this and I think others would use this to start a new eco system of databases, no sql, messaging, streaming and data oriented .NET core open source projects. 25036 area-System.Console Implement an async version of the blocking System.Console.ReadKey In the PowerShell extension for Visual Studio Code, we have an async REPL loop where we'd love to be able to `await Console.ReadKeyAsync()` rather than blocking on `Console.ReadKey()`. The current implementation is problematic because we need cancellation support. We have tried to work around the blocking ReadKey() call by using KeyAvailable() but there is a known issue with KeyAvailable() causing the characters to be echo'd to the screen on Linux which is not desirable when you're asking for a user's password. 25037 area-System.IO System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared failed in CI Failed test: System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared Configuration: osx10.12_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3498/testReport/System.IO.MemoryMappedFiles.Tests/CrossProcessTests/DataShared/ MESSAGE: ~~~ Exit code was 131 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 203 at System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.IO.MemoryMappedFiles/tests/MemoryMappedFile.CrossProcess.cs:line 33 ~~~ -25039 area-Infrastructure Add validation of contract/implementation consistency for readonly structs, parameters and returns readonliness is part of the contract. We need to add validation for this to our contract tooling to ensure consistency between reference assembly and implementation. From @weshaggard : It should be easy enough to add for anyone that wants to verify it. The code lives in Microsoft.Cci.Extensions in Buildtools. https://github.com/dotnet/coreclr/pull/14789#issuecomment-341579931 -25040 area-System.Net Implement portable support for TCP_KEEPCNT, TCP_KEEPIDLE and TCP_KEEPINTVL socket options Allow for configuring TCP Keepalive in a portable manner. # Rationale TCP Keepalive is an optional feature of TCP that is implemented in most widely used OSes and the feature can already be enabled in .NET by using `SocketOptionName.KeepAlive`. However, it is not possible, as of now, to set the various keepalive options using a standard .NET API. Most platforms, more than simply allowing TCP keepalive, provide a subset of the following three options: * Keepalive Time * Keepalive Interval * Keepalive Retry Count Since Windows 2000, it has been possible to set both Keepalive Time and Keepalive Interval by using `SIO_KEEPALIVE_VALS` with Winsock IOCTL (Exposed via `Socket.IOControl` and `IOControlCode.KeepAliveValues` in .NET) Under Linux, TCP Keepalive can be configured with `setsockopt` under the `SOL_TCP` level. The allowed parameters are `TCP_KEEPCNT`, `TCP_KEEPIDLE` and `TCP_KEEPINTVL`. It seems OSX also has some good support for the feature since OSX Lion, only using slightly different names than Linux: https://lists.apple.com/archives/macnetworkprog/2012/Jul/msg00005.html From the docs, since Windows 10 version 1703 and 1709, settings that are code-compatible with Linux and OSX were introduced: https://msdn.microsoft.com/en-us/library/windows/desktop/ms738596(v=vs.85).aspx As explained in https://github.com/dotnet/corefx/issues/14237, it is impossible today to configure TCP keepalive on platforms other than Windows, where `Socket.IOControl` can do the trick. # Proposed API ```csharp enum SocketOptionName { //… #region SocketOptionLevel.Tcp //… // TCP KeepAlive options TcpKeepAliveRetryCount = 16, // TCP_KEEPCNT value from Ws2ipdef.h TcpKeepAliveTime = 3, // TCP_KEEPIDLE = TCP_KEEPALIVE value from Ws2ipdef.h TcpKeepAliveInterval = 17, // TCP_KEEPINTVL value from Ws2ipdef.h #endregion //… } ``` # Example ```csharp void EnableKeepAlive(Socket socket, byte retryCount, int keepAliveTimeInSeconds, int keepAliveIntervalInSeconds) { socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveRetryCount, (int)retryCount); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, keepAliveTimeInSeconds); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, keepAliveIntervalInSeconds); } ``` # Details The PAL for each supported platform would translate the call to `Socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAlive*, *)` into the appropriate call for the platform. * On Linux, and OSX ≥ 10.7, .NET enumeration values would be translated to corresponding system values for `setsockopt()`. * On Windows 10 version 1709 and newer, the flags would be transferred as-is to the underlying Winsock API, as they already are today. * Ideally, `TcpKeepAliveTime` and `TcpKeepAliveInterval` would be marshalled to `socket.IOControl(IOControlCode.KeepAliveValues, KeepAliveValues, null)` for previous versions of windows, while `TcpKeepAliveRetryCount` would be simply ignored. ⚠️ Beware that commonly used socket option names `TCP_KEEPIDLE` (or `TCP_KEEPALIVE`) and `TCP_KEEPINTVL` are expressed in seconds, while `SIO_KEEPALIVE_VALS` expresses durations in milliseconds. # Questions The TCP keepalive feature being optional, it is not required that all platforms support it or provide any specific way of configuring the feature. * Should a call to a non supported TCP keepalive option throw an exception ? * How should a caller determine if a given option is indeed supported on the current platform ? * Should an additional socket property, similar to `Socket.LingerState` be also added (e.g. `KeepAliveState` of type `KeepAliveOption`), in order to group the various options and handle everything at one place ? * The feature could be used with something like `socket.KeepAliveState = new KeepAliveOption(true, 15, 7200, 1)` * This would also be more consistent with the way the feature is configured on legacy Windows system. +25039 area-Infrastructure Add validation of contract/implementation consistency for readonly structs, parameters and returns readonliness is part of the contract. We need to add validation for this to our contract tooling to ensure consistency between reference assembly and implementation. From xxx : It should be easy enough to add for anyone that wants to verify it. The code lives in Microsoft.Cci.Extensions in Buildtools. https://github.com/dotnet/coreclr/pull/14789#issuecomment-341579931 +25040 area-System.Net Implement portable support for TCP_KEEPCNT, TCP_KEEPIDLE and TCP_KEEPINTVL socket options Allow for configuring TCP Keepalive in a portable manner. # Rationale TCP Keepalive is an optional feature of TCP that is implemented in most widely used OSes and the feature can already be enabled in .NET by using `SocketOptionName.KeepAlive`. However, it is not possible, as of now, to set the various keepalive options using a standard .NET API. Most platforms, more than simply allowing TCP keepalive, provide a subset of the following three options: * Keepalive Time * Keepalive Interval * Keepalive Retry Count Since Windows 2000, it has been possible to set both Keepalive Time and Keepalive Interval by using `SIO_KEEPALIVE_VALS` with Winsock IOCTL (Exposed via `Socket.IOControl` and `IOControlCode.KeepAliveValues` in .NET) Under Linux, TCP Keepalive can be configured with `setsockopt` under the `SOL_TCP` level. The allowed parameters are `TCP_KEEPCNT`, `TCP_KEEPIDLE` and `TCP_KEEPINTVL`. It seems OSX also has some good support for the feature since OSX Lion, only using slightly different names than Linux: https://lists.apple.com/archives/macnetworkprog/2012/Jul/msg00005.html From the docs, since Windows 10 version 1703 and 1709, settings that are code-compatible with Linux and OSX were introduced: https://msdn.microsoft.com/en-us/library/windows/desktop/ms738596(v=vs.85).aspx As explained in https://github.com/dotnet/corefx/issues/14237, it is impossible today to configure TCP keepalive on platforms other than Windows, where `Socket.IOControl` can do the trick. # Proposed API ```csharp enum SocketOptionName { //… #region SocketOptionLevel.Tcp //… // TCP KeepAlive options TcpKeepAliveRetryCount = 16, // TCP_KEEPCNT value from Ws2ipdef.h TcpKeepAliveTime = 3, // TCP_KEEPIDLE = TCP_KEEPALIVE value from Ws2ipdef.h TcpKeepAliveInterval = 17, // TCP_KEEPINTVL value from Ws2ipdef.h #endregion //… } ``` # Example ```csharp void EnableKeepAlive(Socket socket, byte retryCount, int keepAliveTimeInSeconds, int keepAliveIntervalInSeconds) { socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveRetryCount, (int)retryCount); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, keepAliveTimeInSeconds); socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, keepAliveIntervalInSeconds); } ``` # Details The PAL for each supported platform would translate the call to `Socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAlive*, *)` into the appropriate call for the platform. * On Linux, and OSX ≥ 10.7, .NET enumeration values would be translated to corresponding system values for `setsockopt()`. * On Windows 10 version 1709 and newer, the flags would be transferred as-is to the underlying Winsock API, as they already are today. * Ideally, `TcpKeepAliveTime` and `TcpKeepAliveInterval` would be marshalled to `socket.IOControl(IOControlCode.KeepAliveValues, KeepAliveValues, null)` for previous versions of windows, while `TcpKeepAliveRetryCount` would be simply ignored. ⚠️ Beware that commonly used socket option names `TCP_KEEPIDLE` (or `TCP_KEEPALIVE`) and `TCP_KEEPINTVL` are expressed in seconds, while `SIO_KEEPALIVE_VALS` expresses durations in milliseconds. # Questions The TCP keepalive feature being optional, it is not required that all platforms support it or provide any specific way of configuring the feature. * Should a call to a non supported TCP keepalive option throw an exception ? * How should a caller determine if a given option is indeed supported on the current platform ? * Should an additional socket property, similar to `Socket.LingerState` be also added (e.g. `KeepAliveState` of type `KeepAliveOption`), in order to group the various options and handle everything at one place ? * The feature could be used with something like `socket.KeepAliveState = new KeepAliveOption(true, 15, 7200, 1)` * This would also be more consistent with the way the feature is configured on legacy Windows system. 25041 area-Microsoft.CSharp Remove some redundances from Microsoft.CSharp * Remove dead path from `CheckAccessCore`. If `aggWhere` was null we return, otherwise last for must happen at least once. Within that if `atsThru` is null we return, therefore later path for `atsThru` being null cannot be hit. * Remove dead test from `TryReportLvalueFailure` If `!isNested` we are on the first loop so if `pObject != null` and `!(expr is ExprField)` then we know statically that `expr is ExprProperty` as only paths for it being `ExprField` or `ExprProperty` set `pObject`, so remove redundant test. * Remove parameter from `bindFloatOp` that is always overwritten. * Remove parameter from `LScalar` that is always overwritten. * Reduce duplication in `BindIncOpCore`. * Remove some unused assignments. 25042 area-Microsoft.CSharp MS.CSharp: Remove checks for locals as possible source of lvalue errors. Demonstrable as unreachable two ways: Firstly it is impossible to represent the sort of expression that cause CS1604 or CS1605 in dynamic code. Secondly as `ExprLocal` have Flags set to `EXPRFLAG.EXF_LVALUE` and that flag never removed, the paths for `expr.isLvalue` within both `checkLvalue` and `TryReportLvalueFailure` (just before it loops) will mean an `ExprLocal` is never examined within `TryReportLvalueFailure`, and so `ReportLocalError` can never be called. Entails removal of `ERR_RefReadonlyLocal` and `ERR_AssgReadonlyLocal`, contributes to #22470 Edit: Building on that: * Remove `CheckLvalueKind.OutParameter` Tested for, but never passed as a value. Entails removal of `ERR_RefReadonlyLocalCause`, `ERR_RefProperty`, `ERR_RefLvalueExpected`, `ERR_RefReadonly`, `ERR_RefReadonlyStatic`, `ERR_RefReadonly2` & `ERR_RefReadonlyStatic2`. Contributes to #22470 * Tidy up ReportReadOnlyError Remove no-longer-used `CheckLvalueKind` parameter. Store `field.FieldWithType` in local rather than calling twice. Since the index value lookup is not as useful with fewer possibilities, just pick the values to use in branches within the method. -25046 area-Infrastructure Port back improvements made to PlatformDetection related to version detection Changes: https://github.com/dotnet/corefx/pull/24340/files This is already in PR: https://github.com/dotnet/corefx/pull/24531 +25046 area-Infrastructure Port back improvements made to PlatformDetection related to version detection Changes: https://github.com/dotnet/corefx/pull/24340/files This is already in PR: https://github.com/dotnet/corefx/pull/24531 25047 area-Meta Release/2.0.0 - Make corefx exceptions serializable and add typeforwards Related https://github.com/dotnet/corefx/issues/24424 The cleanup code commit is need as otherwise the code would have diverged too much and cherry-picking would have been too bothersome. 25050 area-System.Net How to use System.Net.Http 4.3.3 with .NET 4.6.0 Two questions: 1. How can I ***force*** framework 4.6.0 to use System.Net.Http from the Reference package? 2. (if binding redirect is the only way) how can I add binding redirect in new csproj format? 25052 area-System.Net Cleanup Windows 10 version detection "Windows 10 Version 1709 (""Fall Creators Update"") has been released. This PR cleans up the version detection to use the latest RTM build numbers and removes obsolete InsiderPreview detection for those tests. Also, removed ActiveIssue for tests that are now fixed due to Windows 10 fixes. Fixes #22187" @@ -299,149 +299,149 @@ ID Area Title Description 25065 area-System.Runtime Correct unit tests for Environment.SetEnvironmentVariable Fix #16766 25066 area-System.IO ARM/Linux: unable to cancel async read of /dev/input/input0 file I’m using System.IO.FileStream to read touch screen events. More specifically, I have an endless loop that calls `await stream.ReadAsync(…)` API on that file. It works OK and I’m getting my touch events (well, almost, because no multi-touch, but I don’t think .NET is responsible for that). I’m having problems implementing graceful shutdown. I’ve tried closing and disposing the stream, I.ve tried passing CancellationToken to ReadAsync() call, the result is the same, ReadAsync() only cancels with an exception when the next touch event becomes available. Which is kinda later than I’d like it to. I don’t have much experience with Linux, but it looks like there’s a bug in CoreFX here? 25067 area-Microsoft.CSharp NullReferenceException on unary operators on nullable enums in Microsoft.CSharp Given: ```C# CSharpArgumentInfo x = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null); CallSiteBinder binder = Binder.UnaryOperation( CSharpBinderFlags.None, ExpressionType.OnesComplement, GetType(), new[] { x }); CallSite> site = CallSite>.Create(binder); Func targ = site.Target; object result = targ(site, StringComparison.InvariantCulture); ``` The invocation of `targ` will throw a `NullReferenceException`. The immediate problem is it hitting a path that assumes it is dealing with an `AggregateType` when it is dealing with a `NullableType`, but it seems a bit more than just a spot fix there will be needed to make it handle the combination of both lifting and between enumerable types and their underlying types. Code using `dynamic` will likely never hit this as nullable types will never be inferred from a single `dynamic` argument, but it'd be safer to have this work correctly, as well as it ideally being workable for explicit use as in the example above. -25069 area-System.Diagnostics Test failure: System.Diagnostics.Tests.EventLogEntryCollectionTests/CheckingEntryEqualityAndIndex Opened on behalf of @Sunny-pu The test `System.Diagnostics.Tests.EventLogEntryCollectionTests/CheckingEntryEqualityAndIndex` has failed. Assert.Equal() Failure\r Expected: 1\r Actual: 0 Stack Trace: at System.Diagnostics.Tests.Helpers.WaitForEventLog(EventLog eventLog, Int32 entriesExpected) in E:\A\_work\1586\s\corefx\src\System.Diagnostics.EventLog\tests\Helpers.cs:line 69 at System.Diagnostics.Tests.EventLogEntryCollectionTests.CheckingEntryEqualityAndIndex() in E:\A\_work\1586\s\corefx\src\System.Diagnostics.EventLog\tests\EventLogEntryCollectionTests.cs:line 85 Build : Master - 20171106.02 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release - Windows.7.Amd64-x86 - Release +25069 area-System.Diagnostics Test failure: System.Diagnostics.Tests.EventLogEntryCollectionTests/CheckingEntryEqualityAndIndex Opened on behalf of @Sunny-pu The test `System.Diagnostics.Tests.EventLogEntryCollectionTests/CheckingEntryEqualityAndIndex` has failed. Assert.Equal() Failure\r Expected: 1\r Actual: 0 Stack Trace: at System.Diagnostics.Tests.Helpers.WaitForEventLog(EventLog eventLog, Int32 entriesExpected) in E:\A\_work\1586\s\corefx\src\System.Diagnostics.EventLog\tests\Helpers.cs:line 69 at System.Diagnostics.Tests.EventLogEntryCollectionTests.CheckingEntryEqualityAndIndex() in E:\A\_work\1586\s\corefx\src\System.Diagnostics.EventLog\tests\EventLogEntryCollectionTests.cs:line 85 Build : Master - 20171106.02 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release - Windows.7.Amd64-x86 - Release 25070 area-Infrastructure When I try to build the corefx in my local with VS2017 enterprise, it always point to community. ![image](https://user-images.githubusercontent.com/33082483/32431896-4087655c-c310-11e7-90f2-b265f5938287.png) Actually I have installed an enterprise version of VS2017. 25072 area-System.Net Client cert auth doesn't work in HttpClientHandler "We have a Nginx server that lives behind a Barracuda Web Application Firewall. We configure the firewall to only allow request with specific client cert. I am writing code leveraging on `HttpClient` to access Nginx. With the following .Net Core 2.0 code, I always get `System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred` ``` var cert = FindCertificateByThumbprint(""1A7201E21CA93CAFED9FDCD1736716F606A22651""); using (var handler = HttpMessageHandlerFactory.Create(cert)) using (var client = new HttpClient(handler)) { client.BaseAddress = new Uri(""https://release.sample.com""); client.DefaultRequestHeaders.Host = ""release.sample.com""; var postString = ... // some json data using (var postContent = new StringContent(postString, Encoding.UTF8, ""application/json"")) using (var response = await client.PostAsync(""/some_api"", postContent)) { var responseContent = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseContent); } } ``` ``` public static HttpMessageHandler Create(X509Certificate2 cert) { var handler = new HttpClientHandler(); handler.ClientCertificateOptions = ClientCertificateOption.Manual; handler.ClientCertificates.Add(cert); return handler; } ``` But if I switch to .Net Framework 4.6.1 with the following code change (1 line only), it works: ``` var handler = new WebRequestHandler(); ``` I have no ideas about this. What's the difference between .Net Core `HttpClientHandler` and .Net Framework `WebRequestHandler`?How can I make it work in .Net Core 2.0? Can anyone help me? Thanks in advance! My application is an Asp.Net Core 2.0 web app based on .Net Core 2.0 running on Windows 10 x64, and is deployed as an Azure WebApp Here is the simplest code that reproduces the issue, it is a console app: https://github.com/kchanlee/HttpMessageHandlerIssue " -25077 area-System.Memory Utf8Formatter.TryFormat(Double/Single) allocates a String. As it's a thin wrapper around the classic BCL api. The algorithm is extremely complex and we don't have a C# version and porting the C++ from CoreCLR would be time-consuming and it's not clear whether the engineering result would be to our pleasing. For now, this overload is more for completeness than a cloud need so for now, this issue is for tracking. +25077 area-System.Memory Utf8Formatter.TryFormat(Double/Single) allocates a String. As it's a thin wrapper around the classic BCL api. The algorithm is extremely complex and we don't have a C# version and porting the C++ from CoreCLR would be time-consuming and it's not clear whether the engineering result would be to our pleasing. For now, this overload is more for completeness than a cloud need so for now, this issue is for tracking. 25078 area-System.Memory Productize Utf8Parser and Utf8Formatter "Fixes https://github.com/dotnet/corefx/issues/24607 Remaining debt (cut for time): Parsing Intgers with the ""N"" format https://github.com/dotnet/corefx/issues/24986 Some questions to be resolved as to whether to be compatible (BCL doesn't care where you put the commas) or correct. Format of floating point is still a wrapper hack https://github.com/dotnet/corefx/issues/25077 The portable DoubleToNumber() code was never ported to C# (though the big block comment advertising it was)." -25079 area-System.Linq Improve Enumerable.SingleOrDefault(predicate) Logic "@seanfisher commented on [Sun Nov 05 2017](https://github.com/dotnet/core/issues/1061) # Improve Enumerable.SingleOrDefault logic This improves performance for the case where more than one element is found that matches the predicate, especially in large data sets. # General Hi, I ran across the [reference source for Enumerable.cs](https://github.com/Microsoft/referencesource/blob/b31308b03e8bd5bf779fb80fda71f31eb959fe0b/System.Core/System/Linq/Enumerable.cs#L1204-L1220) and was surprised to see an improvement opportunity. I was about to open an issue over there but then read a closed issue where they recommended opening new issues over here instead. In the current reference source it appears that there is needless looping over the entire enumerable even if the count of elements that match the predicate is greater than one. Here's a quick one-liner example of a short-circuit exit improvement (notice the added line right after `checked { count++; }`), although I'm sure it could be improved even further: public static TSource SingleOrDefault(this IEnumerable source, Func predicate) { if (source == null) throw Error.ArgumentNull(""source""); if (predicate == null) throw Error.ArgumentNull(""predicate""); TSource result = default(TSource); long count = 0; foreach (TSource element in source) { if (predicate(element)) { result = element; checked { count++; } if (count == 2) { break; } } } switch (count) { case 0: return default(TSource); case 1: return result; } throw Error.MoreThanOneMatch(); } Let me know if this is the appropriate place for this issue. It could also be that the reference source doesn't reflect exactly what the implementation is doing, because I would expect something like the Enumerable methods would have long-since been hand-tuned for performance. --- @benaadams commented on [Sun Nov 05 2017](https://github.com/dotnet/core/issues/1061#issuecomment-342066802) It seems to be fixed in corefx? https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Single.cs However, for a performance improvement, you should be able to just open and Issue in the repository that has the source or open a PR change. Although what reference source shows is the code for full framework/desktop so it could probably still do with this change (or to pick up corefx's Linq code) --- @Petermarcu commented on [Mon Nov 06 2017](https://github.com/dotnet/core/issues/1061#issuecomment-342217436) I'm going to move this issue to corefx. The outcome here is probably to add a ref count to get this on the list of things to consider porting to .NET Framework. " +25079 area-System.Linq Improve Enumerable.SingleOrDefault(predicate) Logic "xxx commented on [Sun Nov 05 2017](https://github.com/dotnet/core/issues/1061) # Improve Enumerable.SingleOrDefault logic This improves performance for the case where more than one element is found that matches the predicate, especially in large data sets. # General Hi, I ran across the [reference source for Enumerable.cs](https://github.com/Microsoft/referencesource/blob/b31308b03e8bd5bf779fb80fda71f31eb959fe0b/System.Core/System/Linq/Enumerable.cs#L1204-L1220) and was surprised to see an improvement opportunity. I was about to open an issue over there but then read a closed issue where they recommended opening new issues over here instead. In the current reference source it appears that there is needless looping over the entire enumerable even if the count of elements that match the predicate is greater than one. Here's a quick one-liner example of a short-circuit exit improvement (notice the added line right after `checked { count++; }`), although I'm sure it could be improved even further: public static TSource SingleOrDefault(this IEnumerable source, Func predicate) { if (source == null) throw Error.ArgumentNull(""source""); if (predicate == null) throw Error.ArgumentNull(""predicate""); TSource result = default(TSource); long count = 0; foreach (TSource element in source) { if (predicate(element)) { result = element; checked { count++; } if (count == 2) { break; } } } switch (count) { case 0: return default(TSource); case 1: return result; } throw Error.MoreThanOneMatch(); } Let me know if this is the appropriate place for this issue. It could also be that the reference source doesn't reflect exactly what the implementation is doing, because I would expect something like the Enumerable methods would have long-since been hand-tuned for performance. --- xxx commented on [Sun Nov 05 2017](https://github.com/dotnet/core/issues/1061#issuecomment-342066802) It seems to be fixed in corefx? https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Single.cs However, for a performance improvement, you should be able to just open and Issue in the repository that has the source or open a PR change. Although what reference source shows is the code for full framework/desktop so it could probably still do with this change (or to pick up corefx's Linq code) --- xxx commented on [Mon Nov 06 2017](https://github.com/dotnet/core/issues/1061#issuecomment-342217436) I'm going to move this issue to corefx. The outcome here is probably to add a ref count to get this on the list of things to consider porting to .NET Framework. " 25081 area-System.Net ARM/Linux: NetworkChange.NetworkAddressChanged crashes "Here's a program: ``` using System; using System.Net.NetworkInformation; class Program { static void Main( string[] args ) { printAll(); NetworkChange.NetworkAddressChanged += addressChanged; Console.ReadLine(); } static void addressChanged( object sender, EventArgs e ) { printAll(); } static void printAll() { NetworkInterface[] all = NetworkInterface.GetAllNetworkInterfaces(); foreach( var i in all ) Console.WriteLine( ""{0}, status {1}"", i.Description, i.OperationalStatus ); } } ``` Here's the output when I unplug Ethernet cable from the device: ``` lo, status Unknown sit0, status Down eth0, status Up wlan0, status Down lo, status Unknown sit0, status Down eth0, status Down wlan0, status Down Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Net.NetworkInformation.NetworkChange.OnSocketEvent(NetworkChangeKind kind) at System.Net.NetworkInformation.NetworkChange.ProcessEvent(Int32 socket, NetworkChangeKind kind) at System.Net.NetworkInformation.NetworkChange.LoopReadSocket(Int32 socket) at System.Net.NetworkInformation.NetworkChange.<>c.b__17_0(Object s) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) ```" 25082 area-Infrastructure Run tests on non-en-US culture Right now our CI and official runs all use en-US. When contributors run tests locally on a machine with different culture settings, they sometimes get failures - which we fix, but it would be nice to prevent this upstream especially as sometimes they are product bugs. 25083 area-Infrastructure Promote netcoreapp tests to netstandard as possible Tests that run only against .NET Standard surface area should run in the netstandard configuration so they can be reused against other netstandard implementations. It is likely that we currently have some tests running in the netcoreapp configuration that could be run in netstandard. We should do a pass through in order to beef up our netstandard coverage. -25084 area-Infrastructure Share .NET Standard test bed We already have good tools to ensure that .NET Standard implementations fulfil the .NET Standard API surface area. We should now also share tests in order to minimize functional differences. In CoreFX we have a attempted to separate out tests for .NET Standard. In discussion with @marek-safar and @luhenry of Xamarin it likely makes sense to make this test bed reuseable so we can run it against Xamarin as well. We expect this to also help us drive standardization/documentation of the behavior of .NET Standard API's, where it's not already clear. We’d like to establish principles (with examples) for which behavior we’d like to prescribe. There is inherent tension between making .NET behavior consistent across all platforms and making .NET behavior self-consistent on a given platform. Sharing tests will help map this out, and prevent divergence. Longer term we may want to run Mono tests against .NET Core, and run .NET Core (ie., full netcoreapp) tests against Mono where appropriate: these may have value but are not in scope of this epic. @marek-safar @luhenry @terrajobst -25085 area-System.Memory Add String support to ReadOnlyMemory Today `ReadOnlySpan` can reference a `System.String` (via `AsReadOnlySpan()`), but `ReadOnlyMemory` can't. We should fix that so that `ReadOnlyMemory` can be used as a way to slice strings where the slices can live on the heap. To me that means: 1. Allowing `ReadOnlyMemory` to wrap a `string` in addition to wrapping a `T[]` and an `OwnedMemory`. This will mean an extra type check on operations like `ReadOnlyMemory.Span`, but it can be guarded behind a `typeof(T) == typeof(char)` check such that the additional branch and few additional instructions will only impact `T==char`, and `string` will end up being a very common case for `T==char`, making it worth it. 2. Adding an `AsReadOnlyMemory()` extension method for`string` just as there's an `AsReadOnlySpan()` extension. 3. Adding a `TryGetString` method on `MemoryMarshal` or some similar place that enables getting the string/offset/count out of a `ReadOnlyMemory` if it's wrapping one. 4. Whatever string operation methods we want exposed added as extension methods for `ReadOnlyMemory`, related to https://github.com/dotnet/corefx/issues/20378 and https://github.com/dotnet/corefx/issues/21395 cc: @KrzysztofCwalina, @ahsonkhan, @terrajobst, @jkotas Replaces https://github.com/dotnet/corefx/issues/20378? +25084 area-Infrastructure Share .NET Standard test bed We already have good tools to ensure that .NET Standard implementations fulfil the .NET Standard API surface area. We should now also share tests in order to minimize functional differences. In CoreFX we have a attempted to separate out tests for .NET Standard. In discussion with @marek-safar and xxx of Xamarin it likely makes sense to make this test bed reuseable so we can run it against Xamarin as well. We expect this to also help us drive standardization/documentation of the behavior of .NET Standard API's, where it's not already clear. We’d like to establish principles (with examples) for which behavior we’d like to prescribe. There is inherent tension between making .NET behavior consistent across all platforms and making .NET behavior self-consistent on a given platform. Sharing tests will help map this out, and prevent divergence. Longer term we may want to run Mono tests against .NET Core, and run .NET Core (ie., full netcoreapp) tests against Mono where appropriate: these may have value but are not in scope of this epic. @marek-safar xxx @terrajobst +25085 area-System.Memory Add String support to ReadOnlyMemory Today `ReadOnlySpan` can reference a `System.String` (via `AsReadOnlySpan()`), but `ReadOnlyMemory` can't. We should fix that so that `ReadOnlyMemory` can be used as a way to slice strings where the slices can live on the heap. To me that means: 1. Allowing `ReadOnlyMemory` to wrap a `string` in addition to wrapping a `T[]` and an `OwnedMemory`. This will mean an extra type check on operations like `ReadOnlyMemory.Span`, but it can be guarded behind a `typeof(T) == typeof(char)` check such that the additional branch and few additional instructions will only impact `T==char`, and `string` will end up being a very common case for `T==char`, making it worth it. 2. Adding an `AsReadOnlyMemory()` extension method for`string` just as there's an `AsReadOnlySpan()` extension. 3. Adding a `TryGetString` method on `MemoryMarshal` or some similar place that enables getting the string/offset/count out of a `ReadOnlyMemory` if it's wrapping one. 4. Whatever string operation methods we want exposed added as extension methods for `ReadOnlyMemory`, related to https://github.com/dotnet/corefx/issues/20378 and https://github.com/dotnet/corefx/issues/21395 cc: @KrzysztofCwalina, @ahsonkhan, @terrajobst, xxx Replaces https://github.com/dotnet/corefx/issues/20378? 25088 area-System.Net Socket.Listen() does not support UNIX Domain Socket "According to https://github.com/dotnet/corefx/issues/10981, I copied the implementation from corefx/src/System.Net.Sockets/tests/FunctionalTests/UnixDomainSocketTest.cs and use it locally like below. (I'm using dotnet core 2.0.0 on Ubuntu) ```C# Socket s = new Socket(AddressFamily.Unix, SocketType.Dgram, ProtocolType.Unspecified); Console.WriteLine(s.SendBufferSize); Console.WriteLine(s.ReceiveBufferSize); var unixSocket = ""./my.sock.1""; var ep = new UnixDomainSocketEndPoint(unixSocket); Console.WriteLine(ep.AddressFamily); try { System.IO.File.Delete(unixSocket); s.Bind(ep); s.Listen(5); //// **Operation not supported** while(true) { var newS = s.Accept(); byte[] content = new byte[1000]; var result = s.Receive(content); Console.WriteLine(result); Console.WriteLine(Encoding.Default.GetString(content)); newS.Close(); } } catch(Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); s.Close(); } ``` The exception is something like below: ``` Operation not supported at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.Listen(Int32 backlog) at test01.Program.Main(String[] args) in /home/klein/code/temp/test01/Program.cs:line 106 ``` Is there any solution or workaround to let dotnet core build a domain socket server in Linux? Thanks!" 25089 area-System.Runtime Add methods for getting the current time in a specific time zone "We presently have `DateTime.Now` and `DateTimeOffset.Now` for getting the current time in the computer's local time zone. We also have `DateTime.UtcNow` and `DateTimeOffset.UtcNow` for getting the current time in UTC. However, we don't have a property or method to get the time in a *specific* time zone. To achieve that, one currently has to first get the UTC time, then get a specific time zone (if one doesn't have it already), and then convert the time to that time zone. This proposal is to add an API to make that one step instead of two or three. ## Proposed API ```diff namespace System { public class TimeZoneInfo { + public DateTimeOffset Now { get; } } } ``` ## Example Usage ```csharp DateTimeOffset now = TimeZoneInfo.FindSystemTimeZoneById(""Eastern Standard Time"").Now; ``` Note that the above has been edited based on the conversation in this thread. The original proposal was to add `NowInTimeZone` methods for `DateTime` and `DateTimeOffset`. Other alternatives to consider would be to have `.GetCurrentTime()` as a method instead of the `.Now` property, or to introduce a `ZonedDateTime` type." -25090 area-System.Net Reset auth settings on the request during redirect on managedhandler. cc @stephentoub @Tratcher fixes #24842 #24387 Update: In the latest rebased commit, I've combined the authentication and redirect handlers, to maintain the state as local information in SendAsync, as discussed internally with @stephentoub +25090 area-System.Net Reset auth settings on the request during redirect on managedhandler. cc xxx xxx fixes #24842 #24387 Update: In the latest rebased commit, I've combined the authentication and redirect handlers, to maintain the state as local information in SendAsync, as discussed internally with @stephentoub 25094 area-System.Runtime Proposal: String.Contains(char) ## Rationale and Usage Finding a character in a string is a fairly common primitive operation. Unfortunately we lead users to the pit of failure because `mystring.Contains(char)` will bind to the Linq version, which can easily be 20x slower than `mystring.IndexOf(char) != -1`. By adding these to string, the next recompile will give a performance improvement. ## Proposed API ```c# public sealed partial class String : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.ICloneable { public bool Contains(char value) { throw null; } public bool Contains(char value, StringComparison comparisonType) { throw null; } public bool Contains(string value) { throw null; } // already exists public bool Contains(string value, StringComparison comparisonType) { throw null; } // already exists public int IndexOf(char value, StringComparison comparisonType) { throw null; } // to implement above } ``` the implementations will simply be ```c# public bool Contains(char value) { return IndexOf(value) != -1; } public bool Contains(char value, StringComparison comparisonType) { return IndexOf(value, comparisonType) != -1; } ``` ## Microbenchmark Searching in 10 and 1000 character strings: ``` Method | Mean | Error | StdDev | ---------- |-----------:|----------:|----------:| LinqShort | 142.750 ns | 0.4997 ns | 0.4430 ns | LinqLong | 180.121 ns | 0.4741 ns | 0.3428 ns | FastShort | 7.575 ns | 0.0196 ns | 0.0174 ns | FastLong | 8.508 ns | 0.0403 ns | 0.0377 ns | ``` ## Variations The StringComparison overload is in order to search case insensitively if desired. The IndexOf overload is needed to implement it. These could be discarded as the 90% case I would expect to not take a comparison. -25098 area-Serialization DCSerialization CriticalHelper.WriteMembers cleanup Name params (were comments) Check `List.Count` once Reduce calls to `Load` and `Call` by once each (to reduce inline bloat https://github.com/dotnet/coreclr/pull/14850#issuecomment-342256447) @stephentoub PTAL +25098 area-Serialization DCSerialization CriticalHelper.WriteMembers cleanup Name params (were comments) Check `List.Count` once Reduce calls to `Load` and `Call` by once each (to reduce inline bloat https://github.com/dotnet/coreclr/pull/14850#issuecomment-342256447) xxx PTAL 25099 area-Meta Webpack failure on dot net core 2 gives wrong message. "DotNet Core 2.0 with Angular 5 If angular is updated to angular 5 and ngtools is not latest, then following error comes during runtime. Error: Version of @angular/compiler-cli needs to be 2.3.1 or greater. Current version is ""5.0.0"". Error message is clearly misleading." 25102 area-System.Drawing System.Drawing on CentOS: Unable to load DLL 'libdl' "Any code which uses System.Drawing fails on CentOS 7.4 with the following exception: ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'libdl': The specified module or one of its dependencies could not be found. (Exception from HRESULT: 0x8007007E) at Interop.Libdl.dlopen(String fileName, Int32 flag) at System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary() at System.Drawing.SafeNativeMethods.Gdip..cctor() --- End of inner exception stack trace --- at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap) at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm) at gdiplus.Program.Main(String[] args) in /root/gdiplus/Program.cs:line 12 ``` This is because by default `libdl.so` doesn't exist on CentOS whereas `libdl.so.2` does exist. As a workaround you can symlink `/lib64/libdl.so.2` to `/lib64/libdl.so`. ``` ln -s /lib64/libdl.so.2 /lib64/libdl.so ``` Program.cs: ```csharp using System; using System.Drawing; namespace gdiplus { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); var bitmap = new Bitmap(""test.bmp""); } } } ``` Project file: ```xml Exe netcoreapp2.0 ```" 25105 area-System.Memory Productize System.Collections.Sequences Tracking item for [System.Collections.Sequences](https://github.com/dotnet/corefxlab/tree/master/src/System.Collections.Sequences) Related #24174 25110 area-System.Runtime Add methods for manipulating date and time with respect to a particular time zone "There currently is not an easy way to manipulate date and time values with respect to a particular time zone. For example, the US went through a DST transition recently. Using methods such as `AddDays` and similar do not reflect that correctly - even on the `DateTimeOffset` versions. I suggest adding the following: ## Proposed API ```diff namespace System { public struct DateTimeOffset { + public static DateTimeOffset AddYears(int years, TimeZoneInfo timeZone) + public static DateTimeOffset AddMonths(int months, TimeZoneInfo timeZone) + public static DateTimeOffset AddDays(int days, TimeZoneInfo timeZone) + public static DateTimeOffset AddHours(double hours, TimeZoneInfo timeZone) + public static DateTimeOffset AddMinutes(double minutes, TimeZoneInfo timeZone) + public static DateTimeOffset AddSeconds(double seconds, TimeZoneInfo timeZone) + public static DateTimeOffset AddMilliseconds(double milliseconds, TimeZoneInfo timeZone) + public static DateTimeOffset AddTicks(long ticks, TimeZoneInfo timeZone) + public static DateTimeOffset Add(TimeSpan timeSpan, TimeZoneInfo timeZone) + public static DateTimeOffset Subtract(TimeSpan timeSpan, TimeZoneInfo timeZone) } public struct DateTime { + public static DateTime AddYears(int years, TimeZoneInfo timeZone) + public static DateTime AddMonths(int months, TimeZoneInfo timeZone) + public static DateTime AddDays(int days, TimeZoneInfo timeZone) + public static DateTime AddHours(double hours, TimeZoneInfo timeZone) + public static DateTime AddMinutes(double minutes, TimeZoneInfo timeZone) + public static DateTime AddSeconds(double seconds, TimeZoneInfo timeZone) + public static DateTime AddMilliseconds(double milliseconds, TimeZoneInfo timeZone) + public static DateTime AddTicks(long ticks, TimeZoneInfo timeZone) + public static DateTime Add(TimeSpan timeSpan, TimeZoneInfo timeZone) + public static DateTime Subtract(TimeSpan timeSpan, TimeZoneInfo timeZone) } } ``` ## Example Usage ```csharp // setup TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(""Eastern Standard Time""); DateTimeOffset dto = DateTimeOffset.Parse(""2017-11-05T00:00:00-04:00""); // example of using AddDays in existing API DateTimeOffset result1 = dto.AddDays(1); // 2017-11-06T00:00:00-04:00 // example of using AddDays with respect to time zone in proposed API DateTimeOffset result2 = dto.AddDays(1, tz); // 2017-11-06T00:00:00-05:00 // example of using AddHours in existing API DateTimeOffset result3 = dto.AddHours(24); // 2017-11-06T00:00:00-04:00 // example of using AddHours with respect to time zone in proposed API DateTimeOffset result4 = dto.AddHours(24, tz); // 2017-11-05T23:00:00-05:00 ``` Note that in this context, `AddDays` is intended to manipulate a calendar day, not an elapsed 24-hour duration. Thus its argument is an `int` rather than a `double`. `AddMonths` and `AddYears` already behave similarly. Also, if #24555 goes through, then we'd also need `AddMicroseconds` versions of the above. For discussion: We could also include overloads that allow the user to supply a delegate to control how ambiguous results are handled, and how invalid or ambiguous `DateTime` inputs are resolved. Or we could default that behavior to existing behaviors present in the framework already, or to something more sensible for these scenarios. " -25111 area-Infrastructure NetCore package description commit hash could use some explanation? Microsoft.NETCore.App has the following description in its nuspec: ``` A set of .NET API's that are included in the default .NET Core application model. e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d When using NuGet 3.x this package requires at least version 3.4. ``` I just got a question asking if this was a NuGet.org or NuGet client bug... Perhaps changing that to something like the following would make it more helpful to more people? ``` A set of .NET API's that are included in the default .NET Core application model. Commit hash: e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d When using NuGet 3.x this package requires at least version 3.4. ``` +25111 area-Infrastructure NetCore package description commit hash could use some explanation? Microsoft.NETCore.App has the following description in its nuspec: ``` A set of .NET API's that are included in the default .NET Core application model. e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d When using NuGet 3.x this package requires at least version 3.4. ``` I just got a question asking if this was a NuGet.org or NuGet client bug... Perhaps changing that to something like the following would make it more helpful to more people? ``` A set of .NET API's that are included in the default .NET Core application model. Commit hash: e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d When using NuGet 3.x this package requires at least version 3.4. ``` 25112 area-System.Drawing Support loading libgdiplus from NuGet packages "This PR updates System.Drawing.Common so that it uses a logic very similar to that of `DllImport` when loading the `libgdiplus` native library. This allows NuGet packages to ship native versions of `libgdiplus` which can then be distributed as part of a self-contained application. We currently use this approach for `libgdiplus.dylib` on macOS, lifting the requirement for users to do `brew install mono-libgdiplus`. If we ever manage to create a portable version of `libgdiplus.so`, this approach could also work for Linux. With this change, `GdiplusNative.LoadNativeLibrary` will first attempt to open `libgdiplus.so` and `libgdiplus.so.0`. If neither of those two files are found in the default search path, it iterates over all directories in `AppContext.GetData(""NATIVE_DLL_SEARCH_DIRECTORIES"")` and will attempt to load `libgdiplus.so` from those directories. Fixes #24213" -25114 area-Meta "Consider writing analyzers to steer people towards ""Try"" variants of API's instead of using exceptions for control flow." -25115 area-System.Net Unsupported raw socket programming "@jakubaleksanderpolkowski commented on [Thu Nov 02 2017](https://github.com/dotnet/core/issues/1059) # Unsupported raw socket programming # Unable to create new raw socket using .net core and C# on armhf hardware under linux As above i can't create raw socket in any way. It seems like .net core does not support raw socket programming yet. Hardware: Raspberry Pi3 CPU: armhf OS: Raspbian Runtime: 2.0.0-preview1-001887-00 Language: C# Published on x64 Linux with sdk 2.0.0 Received error: > "" Unhandled Exception: System.Net.Sockets.SocketException: Protocol not supported > at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType > protocolType) "" Code that whrows error: `mainSocket = new Socket(AddressFamily.InterNetwork,SocketType.Raw, ProtocolType.IP);` --- @stephentoub commented on [Thu Nov 02 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341410072) What happens if you run with sudo? Are you able to write/run a C program that creates a raw socket successfully? --- @jakubaleksanderpolkowski commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341716434) I all ready run this as sudo, I even gave CAP_NET_RAW capability to this program --- @stephentoub commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341716808) And what about a C program... you have a program in C that runs successfully opening a raw socket on the same machine? --- @wfurt commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341777728) https://stackoverflow.com/questions/19732145/python-raw-socket-protocol-not-supported You need to use AF_PACKET (17 on Linux) but that does not seems to be defined for .net. Try Cprogram as @stephentoub suggested and check it with strace. " -25116 area-System.Runtime ObfuscationAttribute and ObfuscateAssemblyAttribute have wrong definitions in System.Runtime assembly "@hrumhurum commented on [Mon Oct 30 2017](https://github.com/dotnet/core/issues/1054) # System.Runtime assembly provides wrong definitions of obfuscation attributes _System.Reflection.ObfuscationAttribute_ and _System.Reflection.ObfuscateAssemblyAttribute_ are defined without _AttributeUsage_ declarations. This breaks the expected attribute usage semantics. # General .NET Core version: 2.0 OS version: Windows 10 1702 15063.674 Visual Studio version: 15.4.1 Related assembly: **System.Runtime,** Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a located at _C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0\System.Runtime.dll_ Please note that provided sample compiles and works as expected in .NET and .NET Standard 2.0 platforms. ## Steps to reproduce Try to compile the following .NET Core 2.0 console app: ```c# using System; using System.Reflection; [assembly: Obfuscation(Feature = ""Feat 1"")] [assembly: Obfuscation(Feature = ""Feat 2"")] namespace MyApp { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); } } } ``` ## Expected results Assembly successfully compiles. ## Actual results Program.cs(5,12,5,23): error CS0579: Duplicate 'Obfuscation' attribute " +25114 area-Meta "Consider writing analyzers to steer people towards ""Try"" variants of API's instead of using exceptions for control flow." +25115 area-System.Net Unsupported raw socket programming "xxx commented on [Thu Nov 02 2017](https://github.com/dotnet/core/issues/1059) # Unsupported raw socket programming # Unable to create new raw socket using .net core and C# on armhf hardware under linux As above i can't create raw socket in any way. It seems like .net core does not support raw socket programming yet. Hardware: Raspberry Pi3 CPU: armhf OS: Raspbian Runtime: 2.0.0-preview1-001887-00 Language: C# Published on x64 Linux with sdk 2.0.0 Received error: > "" Unhandled Exception: System.Net.Sockets.SocketException: Protocol not supported > at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType > protocolType) "" Code that whrows error: `mainSocket = new Socket(AddressFamily.InterNetwork,SocketType.Raw, ProtocolType.IP);` --- xxx commented on [Thu Nov 02 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341410072) What happens if you run with sudo? Are you able to write/run a C program that creates a raw socket successfully? --- xxx commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341716434) I all ready run this as sudo, I even gave CAP_NET_RAW capability to this program --- xxx commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341716808) And what about a C program... you have a program in C that runs successfully opening a raw socket on the same machine? --- xxx commented on [Fri Nov 03 2017](https://github.com/dotnet/core/issues/1059#issuecomment-341777728) https://stackoverflow.com/questions/19732145/python-raw-socket-protocol-not-supported You need to use AF_PACKET (17 on Linux) but that does not seems to be defined for .net. Try Cprogram as xxx suggested and check it with strace. " +25116 area-System.Runtime ObfuscationAttribute and ObfuscateAssemblyAttribute have wrong definitions in System.Runtime assembly "xxx commented on [Mon Oct 30 2017](https://github.com/dotnet/core/issues/1054) # System.Runtime assembly provides wrong definitions of obfuscation attributes _System.Reflection.ObfuscationAttribute_ and _System.Reflection.ObfuscateAssemblyAttribute_ are defined without _AttributeUsage_ declarations. This breaks the expected attribute usage semantics. # General .NET Core version: 2.0 OS version: Windows 10 1702 15063.674 Visual Studio version: 15.4.1 Related assembly: **System.Runtime,** Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a located at _C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0\System.Runtime.dll_ Please note that provided sample compiles and works as expected in .NET and .NET Standard 2.0 platforms. ## Steps to reproduce Try to compile the following .NET Core 2.0 console app: ```c# using System; using System.Reflection; [assembly: Obfuscation(Feature = ""Feat 1"")] [assembly: Obfuscation(Feature = ""Feat 2"")] namespace MyApp { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); } } } ``` ## Expected results Assembly successfully compiles. ## Actual results Program.cs(5,12,5,23): error CS0579: Duplicate 'Obfuscation' attribute " 25117 area-System.IO FileSystemWatcher events raise more than once This issue was filed here and has some more detailed discussions there. https://github.com/Microsoft/dotnet/issues/347 We should see if it repro's on .NET Core and then figure out if we need a fix or if there is an existing fix we can port to .NET Framework. -25118 area-System.Net Add sni implementation for client sslstream. fixes #23731 cc @stephentoub @Tratcher fyi @Drawaes +25118 area-System.Net Add sni implementation for client sslstream. fixes #23731 cc xxx xxx fyi @Drawaes 25121 area-System.Threading System.Threading.Channels is not compatible with .NETStandard 1.3 I was using [System.Threading.Tasks.Channels](https://www.nuget.org/packages/System.Threading.Tasks.Channels/) package for project with .NETStandard 1.3 target and was very excited it is on its way to become stable (by moving from corefxlab to corefx repo). But today I got frustrated that it suddenly dropped support for .NETStandard 1.3 and min possible target is set to .NETStandard 2.0 `Package System.Threading.Channels 4.5.0-preview1-25907-04 is not compatible with netstandard1.3 (.NETStandard,Version=v1.3). Package System.Threading.Channels 4.5.0-preview1-25907-04 supports: netstandard2.0 (.NETStandard,Version=v2.0) ` If there is no reason please support lowest possible version of .net standard. 25122 area-System.Threading Asp.Net Core App restarts when controller return type is void on Exception "Use the the below code as a controller action. ``` [HttpGet(""Test"")] public async void Test() { await _mgr.HttpContext.Request.ReadFormAsync(); //just to use an async method throw new Exception(""Test""); } ``` Ideally async method should return Task but returning void should not bring the application down." 25123 area-System.Security Make SignedXml.XmlDsigRSASHA256Url etc. public In the full framework the constants for the algorithm names (`XmlDsigRSASHA256Url` et. al) are public: http://referencesource.microsoft.com/#System.Security/system/security/cryptography/xml/signedxml.cs,83 In .NET Core they are `internal`: https://github.com/dotnet/corefx/blob/7b7da40c0b509fd902814529cbbd840da7698017/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/SignedXml.cs#L71 Is there any specific reason to why? If they are available to use the constants should be public. -25128 area-System.ComponentModel Provide localization for default error messages in System.ComponentModel.Annotations "Currently, using attributes like `[Required]` or `[Range(1, 20)]` in ASP.NET Core only gives you english error messages, no matter what culture you set. That is because .NET Core currently only has [one ](https://github.com/dotnet/corefx/tree/master/src/System.ComponentModel.Annotations/src/Resources)(english) resource file. In this [issue ](https://github.com/aspnet/Localization/issues/286), @ryanbrandenburg suggested to create a issue here instead of aspnet/Localization to see if this could get resolved, so this is what I'm doing. I wish I could just write, for example, `[Required]` and get localized error messages, without the need to write `[Required(ErrorMessage = ""bla bla bla"")]` all the time, or creating a lot of resource files, or creating a single big resource file for _every_ annotation... All of these options introduce a lot of hassle for anyone developing applications in any language other than english. It's especially frustrating when all the Annotations you use are the default ones." +25128 area-System.ComponentModel Provide localization for default error messages in System.ComponentModel.Annotations "Currently, using attributes like `[Required]` or `[Range(1, 20)]` in ASP.NET Core only gives you english error messages, no matter what culture you set. That is because .NET Core currently only has [one ](https://github.com/dotnet/corefx/tree/master/src/System.ComponentModel.Annotations/src/Resources)(english) resource file. In this [issue ](https://github.com/aspnet/Localization/issues/286), xxx suggested to create a issue here instead of aspnet/Localization to see if this could get resolved, so this is what I'm doing. I wish I could just write, for example, `[Required]` and get localized error messages, without the need to write `[Required(ErrorMessage = ""bla bla bla"")]` all the time, or creating a lot of resource files, or creating a single big resource file for _every_ annotation... All of these options introduce a lot of hassle for anyone developing applications in any language other than english. It's especially frustrating when all the Annotations you use are the default ones." 25130 area-System.Memory Unroll loop for Utf8Parser unsigned integer parsers "This optimizes the Byte/UInt16/UInt32 parsers in the same way that their signed counterparts already were. Also, tuned up the signed counterparts before copy-pasting them: - Just subtract the '0' once rather than doing it once in IsDigit() and then again to add to the accumulator. - Eliminate the pre-overflow checks in the case where the accumulator is already a larger sized int than the value being parsed. The accumulator will never overflow as long we're under the digit count limit for the type. - Fix the Int32 parser's potential overflow comparison from ""int.MaxValue/10 - 1"" to ""int.MaxValue/10"" (the older value works with an unsigned accumulator but in a ""by accident"" type of way.) Perf improvement: +2.6% Int32 (int.MaxValue) +7.0% UInt32 (uint.MaxValue)" -25132 area-System.Data Tech Empower Fortunes System.Data perf improvements https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=fortune Tracking issue for : 1. (~10%) Fix system.data.sqlclient!System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent on windows to cache the windows identity, or to mimic what Linux does 2. (~4%) There are hot locks in system.data.sqlclient a. (2.7%) system.data.sqlclient!System.Data.ProviderBase.DbConnectionPool.PrepareConnection b. (.3%) system.data.sqlclient!System.Data.SqlClient.SqlConnection+OpenAsyncRetry.Retry c. (.5%) system.private.corelib!System.Threading.TimerQueueTimer.Change @vancem @mikeharder +25132 area-System.Data Tech Empower Fortunes System.Data perf improvements https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=fortune Tracking issue for : 1. (~10%) Fix system.data.sqlclient!System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent on windows to cache the windows identity, or to mimic what Linux does 2. (~4%) There are hot locks in system.data.sqlclient a. (2.7%) system.data.sqlclient!System.Data.ProviderBase.DbConnectionPool.PrepareConnection b. (.3%) system.data.sqlclient!System.Data.SqlClient.SqlConnection+OpenAsyncRetry.Retry c. (.5%) system.private.corelib!System.Threading.TimerQueueTimer.Change xxx @mikeharder 25133 area-System.Xml XPathNavigator returns incorrect Name and LocalName for attribute node after call to ReadAttributeValue method "Consider the following XML: ```XML ``` Load the XML string into an `XmlDocument` to obtain an `XPathNavigator`, in turn to obtain `XmlReader`. Navigate to the attribute `xmlns:x` using `XmlReader.MoveToAttribute` API. The `XmlReader` properties `Name`, `Prefix`, `LocalName` respectively return `xmlns:x`, `xmlns` and `x`, which is correct. While the reader is positioned at the attribute, call `ReadAttributeValue`. Now, the `XmlReader` respectively returns values `xmlns:`, `xmlns` and `` for the same attribute, This doesn't appear to be intuitive. Looks like this is because the `reader` is internally positioned at the attribute value node which is of type text and hence the `LocalName` property returns `` as per the definition of the property. However, the end user would typically expect same values for `Name`, `Prefix` and 'LocalName` properties as from the user point of view, the reader is really not positioned at the ""text node"" that represents the _value of the attribute_. Opening this issue as per [this](https://github.com/dotnet/corefx/issues/16646#issuecomment-341919304) discussion in #16646 to know if this behavior is expected or is a bug. Appreciate your inputs. ```C# static void Main(string[] args) { string xml = """"; var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); XPathNavigator nav = xmlDoc.CreateNavigator(); nav.MoveToRoot(); nav.MoveToFirstChild(); var reader = nav.ReadSubtree(); reader.Read(); if (!reader.MoveToAttribute(""xmlns:x"")) { Console.WriteLine(""Failed to move to attribute xmlns:x""); } Console.WriteLine(""Moving to attribute---------""); Console.WriteLine(""Name: "" + reader.Name); Console.WriteLine(""Prefix: "" + reader.Prefix); Console.WriteLine(""LocalName: "" + reader.LocalName); Console.WriteLine(); if (!reader.ReadAttributeValue()) { Console.WriteLine(""failed to read attribute value""); } Console.WriteLine(""Reading attribute---------""); Console.WriteLine(""Name: "" + reader.Name); // Returns 'xmlns:' instead of 'xmlns:x' Console.WriteLine(""Prefix: "" + reader.Prefix); // Correctly returns 'xmlns' Console.WriteLine(""LocalName: "" + reader.LocalName); // string.Empty instead of 'x' Console.WriteLine(); } ``` Output: ``` Moving to attribute--------- Name: xmlns:x Prefix: xmlns LocalName: x Reading attribute--------- Name: xmlns: Prefix: xmlns LocalName: ```" 25134 area-System.Drawing Move dlopen and dlsym to PAL System.Drawing P/Invokes into `dlopen` and `dlsym` to load the various libgdiplus/GDI+ functions. It currently assumes that `libdl.so` exists and contains `dlopen` and `dlsym`. This is not always the case - for example on CentOS you have `libdl.so.2` but not `libdl.so` and on FreeBSD `dlopen` does not live in `libdl` at all. Instead of trying figure out where `dlopen` lives at runtime, add `dlopen` and `dlsym` to the PAL and resolve it at compile time. -25135 area-System.Net Implementation of SecureChannel.cs in .NET Core does not verify client cert issuers Problem description: A Web Api (.NET Core 2.0) is hosted via Kestrel on Windows 10, MobiLinux and Docker. It's configured in the code to request a client certificate. Kestrel is configured with a CA issued server certificate and exposes port 443. Testing 1. A client application written in .NET 4.5-6 uses a self-signed client certificate (using makecert) 2. A client application written in .NET Core 1.1 and 2.0 uses the same self-signed client certificate (using makecert). In a case of .NET 4.5X, the code seems to verify the list of cert issuers from the server against the client certificate it's trying to send. It finds no matching CA and fails to send the cert to the server and closes the connection as expected by TLS spec. In a case of .NET Core, the code seems to not perform the same comparison and just sends the client cert to the server and allows the connection to remain open. A potential security vulnerability is seems. A support case [REG:117102516555348] with Microsoft has been opened previously to explore this issue. -25136 area-System.Net Add some basic Socket SendAsync/ReceiveAsync perf tests Microbenchmarks around SendAsync/ReceiveAsync cc: @wfurt, @geoffkizer -25137 area-System.Net ManagedHandler: move Debug.Assert(_writeOffset == 0) after code trying to handle that case There is code in ReturnConnectionToPool() to finish pending write. However the assert was executed before that. With this change I could run HTTP unit tests for while without hitting the assert. Before the change, I would hit this every 1-2 hours. -25138 area-Serialization Introducing Xml Serializer Generator for .NET Core # Introducing Xml Serializer Generator for .NET Core Like the Xml Serializer Generator (sgen.exe) on desktop, Microsoft.XmlSerializer.Generator NuGet package is the solution for .NET Core and .NET Standard Libraries. It creates an Xml serialization assembly for types contained in an assembly in order to improve the startup performance of Xml serialization when serializing or de-serializing objects of those types using XmlSerializer. You can start using the tool today by following the [instructions](https://github.com/dotnet/core/blob/master/samples/xmlserializergenerator-instructions.md). ## Details When the Xml Serializer Generator is not used, an XmlSerializer generates serialization code for each type every time when an application runs. You can improve the startup performance of Xml serialization by simply adding the reference of Microsoft.XmlSerializer.Generator NuGet package to your project. Xml Serializer Generator will generate the serialization code and compile it into an assembly next to your output assembly at build time in advance. This assembly can then be deployed and ran with your application. Please create an issue with your feedback at [dotnet/corefx](https://github.com/dotnet/corefx/issues). We are actively looking to improve the tool and your input is a valuable part of the process. -25142 area-System.Data Add UDT support to System.Data.SqlClient. +25135 area-System.Net Implementation of SecureChannel.cs in .NET Core does not verify client cert issuers Problem description: A Web Api (.NET Core 2.0) is hosted via Kestrel on Windows 10, MobiLinux and Docker. It's configured in the code to request a client certificate. Kestrel is configured with a CA issued server certificate and exposes port 443. Testing 1. A client application written in .NET 4.5-6 uses a self-signed client certificate (using makecert) 2. A client application written in .NET Core 1.1 and 2.0 uses the same self-signed client certificate (using makecert). In a case of .NET 4.5X, the code seems to verify the list of cert issuers from the server against the client certificate it's trying to send. It finds no matching CA and fails to send the cert to the server and closes the connection as expected by TLS spec. In a case of .NET Core, the code seems to not perform the same comparison and just sends the client cert to the server and allows the connection to remain open. A potential security vulnerability is seems. A support case [REG:117102516555348] with Microsoft has been opened previously to explore this issue. +25136 area-System.Net Add some basic Socket SendAsync/ReceiveAsync perf tests Microbenchmarks around SendAsync/ReceiveAsync cc: @wfurt, @geoffkizer +25137 area-System.Net ManagedHandler: move Debug.Assert(_writeOffset == 0) after code trying to handle that case There is code in ReturnConnectionToPool() to finish pending write. However the assert was executed before that. With this change I could run HTTP unit tests for while without hitting the assert. Before the change, I would hit this every 1-2 hours. +25138 area-Serialization Introducing Xml Serializer Generator for .NET Core # Introducing Xml Serializer Generator for .NET Core Like the Xml Serializer Generator (sgen.exe) on desktop, Microsoft.XmlSerializer.Generator NuGet package is the solution for .NET Core and .NET Standard Libraries. It creates an Xml serialization assembly for types contained in an assembly in order to improve the startup performance of Xml serialization when serializing or de-serializing objects of those types using XmlSerializer. You can start using the tool today by following the [instructions](https://github.com/dotnet/core/blob/master/samples/xmlserializergenerator-instructions.md). ## Details When the Xml Serializer Generator is not used, an XmlSerializer generates serialization code for each type every time when an application runs. You can improve the startup performance of Xml serialization by simply adding the reference of Microsoft.XmlSerializer.Generator NuGet package to your project. Xml Serializer Generator will generate the serialization code and compile it into an assembly next to your output assembly at build time in advance. This assembly can then be deployed and ran with your application. Please create an issue with your feedback at [dotnet/corefx](https://github.com/dotnet/corefx/issues). We are actively looking to improve the tool and your input is a valuable part of the process. +25142 area-System.Data Add UDT support to System.Data.SqlClient. 25144 area-System.Threading Fix some tests after https://github.com/dotnet/coreclr/pull/14864 Fix for some test failures in https://github.com/dotnet/corefx/pull/25131 -25145 area-Infrastructure Question: How do we do performance test? I had a small conversation with @karelz on the Gitter Coreclr channel. Here is the chat transcript Hi, Just wondering how the performance test is done for the core clr Karel Zikmund @karelz Nov 08 23:05 We have a perf lab with perf test cases. The perf lab and its results is internal only at this moment. What exactly are you interested in? @karelz I am more interested in how it’s done. What OS? And what parameters we are monitoring?. Knowing OS is important because in my office we have guy coming from a well know anti virus software company and he said that his company has profiled that Windows 7 is much better than Windows 10 for doing perf tests and it's stats because windows 10 has lot of background services running which hinders the stats. Its hard to believe for me. So thought of knowing how your team does and what's the rational Karel Zikmund @karelz 06:46 @sherry-ummen our perf lab removes all noise from machines - disables all kind of background services and OS features (PreFetcher, etc.), which could interfere with our measurements and introduce noise. Key thing for performance is to focus on things which matter and remove noise/variance of the environment. For micro-benchmarks we measure time and memory. .NET Core perf tests use xunit-performance harness (see Microsoft/xunit-performance) and we are discussing merging it with BenchmarkDotNet. However, it does not contain all the perf lab scripts to set up the machines, etc. Sherry Ummen @sherry-ummen 06:52 So then I assume you are using windows OS for perf test? Which OS? And do you have some scripts to disable all the background noise? Any plans to share those? Karel Zikmund @karelz 08:55 We run perf on Linux and Mac as well. Windows is just something we run for 10+ years ...I am not sure if the infra scripts are open or not (I know that few years ago the perf test harness was way too involved to be open-sourced). It would be best to ask on GH - I can loop in perf team if you tag me (I haven't been involved in perf team work for last 2 years) Sherry Ummen @sherry-ummen 09:07 I assume GH means Github? And which Repo in Github I should ask? Coreclr Repo? Karel Zikmund @karelz 09:11 coreclr or corefx will both work fine ------------------------------------------------------ So in short I am interested in the said infra scripts which are used to setup a machine. In my case a Windows machine. Whether its open sourced if not then any plans to open source it? +25145 area-Infrastructure Question: How do we do performance test? I had a small conversation with xxx on the Gitter Coreclr channel. Here is the chat transcript Hi, Just wondering how the performance test is done for the core clr Karel Zikmund xxx Nov 08 23:05 We have a perf lab with perf test cases. The perf lab and its results is internal only at this moment. What exactly are you interested in? xxx I am more interested in how it’s done. What OS? And what parameters we are monitoring?. Knowing OS is important because in my office we have guy coming from a well know anti virus software company and he said that his company has profiled that Windows 7 is much better than Windows 10 for doing perf tests and it's stats because windows 10 has lot of background services running which hinders the stats. Its hard to believe for me. So thought of knowing how your team does and what's the rational Karel Zikmund xxx 06:46 @sherry-ummen our perf lab removes all noise from machines - disables all kind of background services and OS features (PreFetcher, etc.), which could interfere with our measurements and introduce noise. Key thing for performance is to focus on things which matter and remove noise/variance of the environment. For micro-benchmarks we measure time and memory. .NET Core perf tests use xunit-performance harness (see Microsoft/xunit-performance) and we are discussing merging it with BenchmarkDotNet. However, it does not contain all the perf lab scripts to set up the machines, etc. Sherry Ummen @sherry-ummen 06:52 So then I assume you are using windows OS for perf test? Which OS? And do you have some scripts to disable all the background noise? Any plans to share those? Karel Zikmund xxx 08:55 We run perf on Linux and Mac as well. Windows is just something we run for 10+ years ...I am not sure if the infra scripts are open or not (I know that few years ago the perf test harness was way too involved to be open-sourced). It would be best to ask on GH - I can loop in perf team if you tag me (I haven't been involved in perf team work for last 2 years) Sherry Ummen @sherry-ummen 09:07 I assume GH means Github? And which Repo in Github I should ask? Coreclr Repo? Karel Zikmund xxx 09:11 coreclr or corefx will both work fine ------------------------------------------------------ So in short I am interested in the said infra scripts which are used to setup a machine. In my case a Windows machine. Whether its open sourced if not then any plans to open source it? 25148 area-System.Reflection IndexOutOfRangeExceptions on multiple System.Reflection.Metadata tests in CI on macOS https://mc.dot.net/#/user/benaadams/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/80f4db8dc2ef1b73a0dbccc693c0d05b22bcf4eb/workItem/System.Reflection.Metadata.Tests/wilogs ``` 2017-11-09 08:30:15,600: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateNamespaceFunctionality [FAIL] 2017-11-09 08:30:15,602: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,607: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,715: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,715: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,716: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,716: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,716: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,717: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1093,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateNamespaceFunctionality() 2017-11-09 08:30:15,718: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateConstantTable [FAIL] 2017-11-09 08:30:15,718: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,718: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,718: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,718: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,719: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,719: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,719: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,720: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2310,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateConstantTable() 2017-11-09 08:30:15,720: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateGenericParamTable [FAIL] 2017-11-09 08:30:15,720: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,720: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,720: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,721: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,721: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,721: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,722: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,722: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1878,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateGenericParamTable() 2017-11-09 08:30:15,722: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateTypeRefTableMod [FAIL] 2017-11-09 08:30:15,722: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,723: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,723: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,723: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,723: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,724: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,724: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,725: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(706,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateTypeRefTableMod() 2017-11-09 08:30:15,743: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.GetCustomAttributes [FAIL] 2017-11-09 08:30:15,744: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,744: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,744: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,744: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,744: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,745: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,745: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,746: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2150,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetCustomAttributes() 2017-11-09 08:30:15,769: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodSemanticsTable [FAIL] 2017-11-09 08:30:15,770: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,770: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,770: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,771: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,771: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,772: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,772: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,773: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2177,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodSemanticsTable() 2017-11-09 08:30:15,801: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.CanCustomizeReaderUtf8Fallback [FAIL] 2017-11-09 08:30:15,802: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,802: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,802: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,802: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,803: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,803: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,803: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(144,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.CanCustomizeReaderUtf8Fallback() 2017-11-09 08:30:15,827: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldMarshal [FAIL] 2017-11-09 08:30:15,827: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,827: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,827: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,828: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,828: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,828: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,829: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,829: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1976,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldMarshal() 2017-11-09 08:30:15,845: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateUserStringStream [FAIL] 2017-11-09 08:30:15,845: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,845: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,846: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,846: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,846: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,847: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,847: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,847: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2381,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateUserStringStream() 2017-11-09 08:30:15,858: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateCustomAttribute [FAIL] 2017-11-09 08:30:15,858: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,858: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,859: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,859: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,859: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,860: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,860: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,860: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2102,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateCustomAttribute() 2017-11-09 08:30:15,870: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.Bug17109 [FAIL] 2017-11-09 08:30:15,870: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:15,870: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:15,870: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:15,871: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:15,872: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:15,872: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,873: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:15,873: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2416,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.Bug17109() 2017-11-09 08:30:16,345: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateSignature [FAIL] 2017-11-09 08:30:16,345: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,346: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,346: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,346: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,346: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,347: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,347: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,348: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2219,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateSignature() 2017-11-09 08:30:16,356: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateModuleRefTableMod [FAIL] 2017-11-09 08:30:16,357: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,357: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,357: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,357: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,357: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,358: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,358: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,359: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(553,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateModuleRefTableMod() 2017-11-09 08:30:16,388: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateClassLayoutTable [FAIL] 2017-11-09 08:30:16,388: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,388: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,388: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,388: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,389: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,389: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,389: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,389: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1912,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateClassLayoutTable() 2017-11-09 08:30:16,393: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_LastTypeDef [FAIL] 2017-11-09 08:30:16,393: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,393: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,394: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,394: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,394: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,394: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,395: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,395: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2621,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_LastTypeDef() 2017-11-09 08:30:16,399: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.EmptyType [FAIL] 2017-11-09 08:30:16,399: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,400: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,400: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,400: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,400: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,400: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,401: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,401: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2394,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.EmptyType() 2017-11-09 08:30:16,404: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_AllMembers [FAIL] 2017-11-09 08:30:16,405: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,405: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,405: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,405: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,405: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,406: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,406: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,406: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2486,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_AllMembers() 2017-11-09 08:30:16,411: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_FirstTypeDef [FAIL] 2017-11-09 08:30:16,411: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,411: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,411: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,411: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,412: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,412: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,412: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,412: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2551,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_FirstTypeDef() 2017-11-09 08:30:16,415: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodImplTable [FAIL] 2017-11-09 08:30:16,415: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,416: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,416: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,416: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,416: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,416: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,417: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,417: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2039,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodImplTable() 2017-11-09 08:30:16,424: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTableMod [FAIL] 2017-11-09 08:30:16,424: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,424: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,424: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,424: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,425: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,425: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,425: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,425: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1807,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTableMod() 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.CannotInstantiateReaderWithNonUtf8Decoder [FAIL] 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: Assert.Throws() Failure 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: Expected: typeof(System.ArgumentException) 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: Actual: typeof(System.IndexOutOfRangeException): Index was outside the bounds of the array. 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,430: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,431: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,431: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,431: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,431: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(133,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.<>c__DisplayClass8_0.b__0() 2017-11-09 08:30:16,436: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldLayoutTable [FAIL] 2017-11-09 08:30:16,436: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,436: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,436: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,436: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,437: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,437: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,437: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,437: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(1943,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldLayoutTable() 2017-11-09 08:30:16,449: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTable [FAIL] 2017-11-09 08:30:16,449: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,449: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,450: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,450: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,450: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,450: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,451: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,451: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2009,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTable() 2017-11-09 08:30:16,459: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_MiddleTypeDef [FAIL] 2017-11-09 08:30:16,459: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,459: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,459: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,460: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,460: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,460: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,460: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,460: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2576,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.MemberCollections_TypeMembers_MiddleTypeDef() 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: System.Reflection.Metadata.Tests.MetadataReaderTests.OtherAccessors [FAIL] 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException : Index was outside the bounds of the array. 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(398,0): at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/128/s/src/mscorlib/src/System/Collections/Generic/Dictionary.cs(248,0): at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 2017-11-09 08:30:16,463: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(89,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetPinnedPEImage(Byte[] peImage) 2017-11-09 08:30:16,464: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(78,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Int32& metadataStartOffset, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,464: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(73,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.GetMetadataReader(Byte[] peImage, Boolean isModule, MetadataReaderOptions options, MetadataStringDecoder decoder) 2017-11-09 08:30:16,464: INFO: proc(54): run_and_log_output: Output: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs(2436,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.OtherAccessors() ``` 25149 area-System.Data SqlException: Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. I am trying to connect to mssql using integrated security credential, dotnet core 2.0 runtime/sdk, running on Macox 10.12.6, dot net core version 2.0.2 tried setting up kinit, i also see klist - list the credential. tried to set up open ssl. got following exception, any pointers `SqlException: Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An unsupported mechanism was requested (unknown mech-code 0 for mech unknown). at System.Net.Security.NegotiateStreamPal.GssInitSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags, Int32& isNtlmUsed) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) at System.Data.SqlClient.SNI.SNIProxy.GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, Byte[] receivedBuff, Byte[]& sendBuff, Byte[] serverName) at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.GenerateSspiClientContext(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength, Byte[] _sniSpnBuffer) at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength)` -vimal 25153 area-Serialization Area-Serialization Sprint 127 The issue is for tracking issues to be done in sprint 127 (due by 11/30/2017) 25154 area-System.Threading Document that CancellationToken in Stream.ReadAsync() is advisory At https://docs.microsoft.com/en-us/dotnet/api/system.io.stream.readasync?view=netframework-4.7.1 I read: > If the operation is canceled before it completes, the returned task contains the [`Canceled`](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskstatus.canceled?view=netframework-4.7.1) value for the [`Status`](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.status?view=netframework-4.7.1) property. As described in #15033, this is not true in actual practice. Especially because `NetworkStream.ReadAsync()` ignores the `CancellationToken` altogether. Thus, I think the documentation for `Stream.ReadAsync()` should be changed to indicate that the parameter is advisory. For code accepting a `Stream`, there is no way (without reflection which should not be required of consumers—and, even with reflection, one may be consuming a stream which wraps `NetworkStream`) to tell if the `CancellationToken` will be ignored or not. So such code always needs to be written in such a way as to support streams with uncancellable read (and write?) operations. -25157 area-System.Diagnostics System.DllNotFoundException: Unable to load DLL 'libproc': "_From @livarcocc on October 6, 2017 16:16_ _From @Petermarcu on October 6, 2017 16:3_ @m2b commented on [Thu Apr 20 2017](https://github.com/dotnet/core/issues/599) **Here is the simple test project code** using System; using Xunit; namespace ITVizion.ActionBoard.RepositoryInMemory { public class Test { [Fact] public void Test1() { Assert.Equal(1,1); } } } ========================================================================= **Here is the command window output. dotnet crashes!** blackielanetMBP:actionboard.git blackie$ dotnet test ITVizion.ActionBoard.RepositoryInMemory.Test/ITVizion.ActionBoard.RepositoryInMemory.Test.csproj Welcome to .NET Core! --------------------- Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs. Telemetry -------------- The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry. Configuring... ------------------- A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once. Decompressing 100% 5896 ms Expanding 100% 7278 ms Failed to create prime the NuGet cache. restore failed with: 134 Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libproc': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.libproc.proc_pidpath(Int32 pid, Byte* buffer, UInt32 bufferSize) at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at Microsoft.DotNet.Cli.ForwardingApp.Execute() at Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingApp.Execute() at Microsoft.DotNet.Tools.Test.TestCommand.<>c__DisplayClass0_0.b__0() at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args) at Microsoft.DotNet.Tools.Test.TestCommand.Run(String[] args) at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient) at Microsoft.DotNet.Cli.Program.Main(String[] args) Abort trap: 6 ========================================================================= **Here is the Mac Problem Report** Process: dotnet [26183] Path: /usr/local/share/dotnet/dotnet Identifier: dotnet Version: 0 Code Type: X86-64 (Native) Parent Process: dotnet [26170] Responsible: dotnet [26183] User ID: 501 Date/Time: 2017-04-20 17:28:26.552 -0700 OS Version: Mac OS X 10.12.4 (16E195) Report Version: 12 Anonymous UUID: E3FC06FA-F158-98C8-DDAD-74F8F018A97A Sleep/Wake UUID: ECCEF7E0-8ED4-4B9C-9EF0-00E0D60B0BBE Time Awake Since Boot: 470000 seconds Time Since Wake: 5600 seconds System Integrity Protection: disabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Application Specific Information: abort() called Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fffa33bed42 __pthread_kill + 10 1 libsystem_pthread.dylib 0x00007fffa34ac5bf pthread_kill + 90 2 libsystem_c.dylib 0x00007fffa3324420 abort + 129 3 libcoreclr.dylib 0x0000000104dc1312 PROCEndProcess(void*, unsigned int, int) + 226 4 libcoreclr.dylib 0x00000001050928c1 UnwindManagedExceptionPass1(PAL_SEHException&, _CONTEXT*) + 833 5 libcoreclr.dylib 0x0000000105092979 DispatchManagedException(PAL_SEHException&, bool) + 73 6 libcoreclr.dylib 0x0000000104f1c6c9 PreStubWorker + 937 7 libcoreclr.dylib 0x00000001050a0579 ThePreStub + 92 8 ??? 0x000000010c1cad79 0 + 4498173305 9 ??? 0x000000010c1c66b1 0 + 4498155185 10 ??? 0x000000010c1c6181 0 + 4498153857 11 ??? 0x000000010c1c51cb 0 + 4498149835 12 ??? 0x000000010bc5cabd 0 + 4492479165 13 ??? 0x000000010bc574b2 0 + 4492457138 14 ??? 0x000000010bc6271b 0 + 4492502811 15 ??? 0x000000010bc5f21f 0 + 4492489247 16 ??? 0x000000010bc55bc2 0 + 4492450754 17 ??? 0x000000010bc5d4df 0 + 4492481759 18 ??? 0x000000010bc5cf8d 0 + 4492480397 19 libcoreclr.dylib 0x000000010509f9a1 CallDescrWorkerInternal + 124 20 libcoreclr.dylib 0x0000000104f8bb43 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 707 21 libcoreclr.dylib 0x0000000104e59fc4 RunMain(MethodDesc*, short, int*, PtrArray**) + 932 22 libcoreclr.dylib 0x0000000104e5a18d Assembly::ExecuteMainMethod(PtrArray**, int) + 221 23 libcoreclr.dylib 0x0000000104e9762a CorHost2::ExecuteAssembly(unsigned int, char16_t const*, int, char16_t const**, unsigned int*) + 442 24 libcoreclr.dylib 0x0000000104dca4f3 coreclr_execute_assembly + 259 25 libhostpolicy.dylib 0x0000000104d027e8 coreclr::execute_assembly(void*, unsigned int, int, char const**, char const*, unsigned int*) + 152 26 libhostpolicy.dylib 0x0000000104cf1388 run(arguments_t const&) + 20568 27 libhostpolicy.dylib 0x0000000104cf1d0d corehost_main + 1405 28 libhostfxr.dylib 0x0000000104c3c90e execute_app(std::__1::basic_string, std::__1::allocator > const&, corehost_init_t*, int, char const**) + 446 29 libhostfxr.dylib 0x0000000104c52679 fx_muxer_t::read_config_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::unordered_map, std::__1::allocator >, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >, std::__1::hash, std::__1::allocator > >, std::__1::equal_to, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > const, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > > > > const&, int, char const**, host_mode_t) + 8441 30 libhostfxr.dylib 0x0000000104c504a9 fx_muxer_t::parse_args_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int, int, char const**, bool, host_mode_t, bool*) + 8425 31 libhostfxr.dylib 0x0000000104c53a09 fx_muxer_t::execute(int, char const**) + 4537 32 libhostfxr.dylib 0x0000000104c3c985 hostfxr_main + 53 33 dotnet 0x0000000104b707ac run(int, char const**) + 1420 34 dotnet 0x0000000104b708ee main + 158 35 libdyld.dylib 0x00007fffa3290235 start + 1 Thread 1: 0 libsystem_kernel.dylib 0x00007fffa33b734a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fffa33b6797 mach_msg + 55 2 libcoreclr.dylib 0x0000000104dc761a MachMessage::Receive(unsigned int) + 74 3 libcoreclr.dylib 0x0000000104dc6539 SEHExceptionThread(void*) + 105 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 2: 0 libsystem_kernel.dylib 0x00007fffa33c019e poll + 10 1 libcoreclr.dylib 0x0000000104db9afe CorUnix::CPalSynchronizationManager::ThreadPrepareForShutdown() + 30 2 libcoreclr.dylib 0x0000000104dbb729 CorUnix::CPalSynchronizationManager::WorkerThread(void*) + 1177 3 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 3: 0 libsystem_kernel.dylib 0x00007fffa33bea3e __open + 10 1 libcoreclr.dylib 0x0000000104e36b0f TwoWayPipe::WaitForConnection() + 31 2 libcoreclr.dylib 0x0000000104e2e8c1 DbgTransportSession::TransportWorker() + 145 3 libcoreclr.dylib 0x0000000104e2d4e9 DbgTransportSession::TransportWorkerStatic(void*) + 9 4 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 5 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 6 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 7 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 4: 0 libsystem_kernel.dylib 0x00007fffa33bebf2 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fffa34aa86e _pthread_cond_wait + 712 2 libcoreclr.dylib 0x0000000104db97a2 CorUnix::CPalSynchronizationManager::ThreadNativeWait(CorUnix::_ThreadNativeWaitData*, unsigned int, CorUnix::ThreadWakeupReason*, unsigned int*) + 306 3 libcoreclr.dylib 0x0000000104db93f6 CorUnix::CPalSynchronizationManager::BlockThread(CorUnix::CPalThread*, unsigned int, bool, bool, CorUnix::ThreadWakeupReason*, unsigned int*) + 390 4 libcoreclr.dylib 0x0000000104dbe3e8 CorUnix::InternalWaitForMultipleObjectsEx(CorUnix::CPalThread*, unsigned int, void* const*, int, unsigned int, int) + 1912 5 libcoreclr.dylib 0x0000000104e2bc73 DebuggerRCThread::MainLoop() + 755 6 libcoreclr.dylib 0x0000000104e2b927 DebuggerRCThread::ThreadProc() + 263 7 libcoreclr.dylib 0x0000000104e2b5d4 DebuggerRCThread::ThreadProcStatic(void*) + 132 8 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 9 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 10 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 11 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 5: 0 libsystem_kernel.dylib 0x00007fffa33bebf2 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fffa34aa86e _pthread_cond_wait + 712 2 libcoreclr.dylib 0x0000000104db9785 CorUnix::CPalSynchronizationManager::ThreadNativeWait(CorUnix::_ThreadNativeWaitData*, unsigned int, CorUnix::ThreadWakeupReason*, unsigned int*) + 277 3 libcoreclr.dylib 0x0000000104db93f6 CorUnix::CPalSynchronizationManager::BlockThread(CorUnix::CPalThread*, unsigned int, bool, bool, CorUnix::ThreadWakeupReason*, unsigned int*) + 390 4 libcoreclr.dylib 0x0000000104dbe3e8 CorUnix::InternalWaitForMultipleObjectsEx(CorUnix::CPalThread*, unsigned int, void* const*, int, unsigned int, int) + 1912 5 libcoreclr.dylib 0x0000000104dbe636 WaitForSingleObjectEx + 70 6 libcoreclr.dylib 0x000000010507b340 CLREventBase::WaitEx(unsigned int, WaitMode, PendingSync*) + 176 7 libcoreclr.dylib 0x0000000104fd0e6f FinalizerThread::WaitForFinalizerEvent(CLREvent*) + 31 8 libcoreclr.dylib 0x0000000104fd0fe3 FinalizerThread::FinalizerThreadWorker(void*) + 115 9 libcoreclr.dylib 0x0000000104f4b15a ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) + 378 10 libcoreclr.dylib 0x0000000104f4b859 ManagedThreadBase::FinalizerBase(void (*)(void*)) + 73 11 libcoreclr.dylib 0x0000000104fd13cc FinalizerThread::FinalizerThreadStart(void*) + 204 12 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 13 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 14 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 15 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 6: 0 libsystem_kernel.dylib 0x00007fffa33b734a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fffa33b6797 mach_msg + 55 2 libclrjit.dylib 0x0000000105bb174a MachMessage::Receive(unsigned int) + 74 3 libclrjit.dylib 0x0000000105bb0669 SEHExceptionThread(void*) + 105 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 7: 0 libsystem_kernel.dylib 0x00007fffa33bf44e __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fffa34a9695 _pthread_wqthread + 1426 2 libsystem_pthread.dylib 0x00007fffa34a90f1 start_wqthread + 13 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x0000000000000006 rcx: 0x00007fff5b0927c8 rdx: 0x0000000000000000 rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00007fff5b0927f0 rsp: 0x00007fff5b0927c8 r8: 0x00007faa1b8088f8 r9: 0x00000000007a682f r10: 0x0000000008000000 r11: 0x0000000000000206 r12: 0x00007fff5b092e30 r13: 0x0000000000000000 r14: 0x00007fffac1f43c0 r15: 0x0000000000000000 rip: 0x00007fffa33bed42 rfl: 0x0000000000000206 cr2: 0x00007fffac1d6128 Logical CPU: 0 Error Code: 0x02000148 Trap Number: 133 Binary Images: 0x104b65000 - 0x104b81ff3 +dotnet (0) <3D909F9D-70EC-3599-8378-D1E3D3F3C4C2> /usr/local/share/dotnet/dotnet 0x104bbf000 - 0x104c62ff7 +libhostfxr.dylib (0) /usr/local/share/dotnet/host/fxr/1.1.0/libhostfxr.dylib 0x104c8c000 - 0x104d48ff3 +libhostpolicy.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libhostpolicy.dylib 0x104d79000 - 0x10529cfff +libcoreclr.dylib (0) <40FA6CB2-53C9-3176-8516-FE40B2D8F3C8> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libcoreclr.dylib 0x1055cc000 - 0x105609dc7 dyld (433.5) <8239D0D7-66F6-3C44-A77F-586F74525DA3> /usr/lib/dyld 0x1059f4000 - 0x105bf6fff +libclrjit.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libclrjit.dylib 0x105cc0000 - 0x105cc8fff +System.Globalization.Native.dylib (0) <60FCF655-55BA-37A9-924C-157C9E8E7AC1> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Globalization.Native.dylib 0x10759d000 - 0x1075a4ffb +System.Native.dylib (0) <5F1F2A95-1960-379D-A897-AF4F76F06D11> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Native.dylib 0x7fff8a057000 - 0x7fff8a057fff com.apple.Accelerate (1.11 - Accelerate 1.11) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate 0x7fff8a070000 - 0x7fff8a6b0fe3 com.apple.vImage (8.1 - ???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage 0x7fff8a6b1000 - 0x7fff8a878fef libBLAS.dylib (1185.50.4) <7AF8DB9A-E33B-30EB-8767-87AFB951E231> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 0x7fff8a879000 - 0x7fff8a890fff libBNNS.dylib (15) <26F32264-148E-35E5-A280-CA035CB3D6F0> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib 0x7fff8a891000 - 0x7fff8ac9cfff libLAPACK.dylib (1185.50.4) <51B2BABA-F736-3663-885A-65A8991D3560> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib 0x7fff8ac9d000 - 0x7fff8acb3fff libLinearAlgebra.dylib (1185.50.4) <0EC25E70-05DC-3615-85B6-81721566CF1D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib 0x7fff8acb4000 - 0x7fff8acbafff libQuadrature.dylib (3) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib 0x7fff8acbb000 - 0x7fff8acceff7 libSparseBLAS.dylib (1185.50.4) <0BDCF6A7-0228-3719-81C7-B6EBC7911320> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib 0x7fff8accf000 - 0x7fff8ae1cff7 libvDSP.dylib (600) <9D9CFF97-2A64-341A-AB35-DC0C76068B9C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib 0x7fff8ae1d000 - 0x7fff8aed4fff libvMisc.dylib (600) <661B825D-274E-3B85-B160-89873AD65A62> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib 0x7fff8aed5000 - 0x7fff8aed5fff com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib 0x7fff8bf7f000 - 0x7fff8bf7ffff com.apple.ApplicationServices (48 - 48) <847E54B5-DEA4-3B50-93CE-4FC67789F179> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 0x7fff8bf80000 - 0x7fff8bfeeff7 com.apple.ApplicationServices.ATS (377 - 422.2) <012ACEE0-9A90-3998-8495-734E105117C0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS 0x7fff8c088000 - 0x7fff8c1b7ff7 libFontParser.dylib (194.11) <635DF6EF-18DF-3D06-90AA-88C509B43068> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib 0x7fff8c1b8000 - 0x7fff8c202fff libFontRegistry.dylib (196.4) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib 0x7fff8c2fe000 - 0x7fff8c3a8ff7 com.apple.ColorSync (4.12.0 - 502.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync 0x7fff8c3a9000 - 0x7fff8c3f9ff7 com.apple.HIServices (1.22 - 591) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices 0x7fff8c3fa000 - 0x7fff8c409ff3 com.apple.LangAnalysis (1.7.0 - 1.7.0) <2CBE7F61-2056-3F96-99A1-0D527796AFA6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis 0x7fff8c40a000 - 0x7fff8c457fff com.apple.print.framework.PrintCore (12 - 491) <5027FD58-F0EE-33E4-8577-934CA06CD2AF> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore 0x7fff8c458000 - 0x7fff8c493fff com.apple.QD (3.12 - 313) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD 0x7fff8c494000 - 0x7fff8c49fff7 com.apple.speech.synthesis.framework (6.3.3 - 6.3.3) <5808F070-8199-36C9-B3C9-F9B98D5AA359> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis 0x7fff8c4a0000 - 0x7fff8c6acfff com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <6EEF498D-8233-3622-B34B-49FDD9D4DF14> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox 0x7fff8c816000 - 0x7fff8cbf0ff7 com.apple.CFNetwork (811.4.18 - 811.4.18) <9CE329E8-6177-3474-976D-F5C63FC875CD> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 0x7fff8d20c000 - 0x7fff8d299fff com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <184D9C49-248F-3374-944C-FD1A99A6B32E> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio 0x7fff8d2ae000 - 0x7fff8d5adff3 com.apple.CoreData (120 - 754.2) /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData 0x7fff8d65b000 - 0x7fff8daeefff com.apple.CoreFoundation (6.9 - 1349.65) <2B7C4BA4-D69E-3651-93DF-3930880B5084> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x7fff8daef000 - 0x7fff8e192ff7 com.apple.CoreGraphics (2.0 - 1070.22) <1676F5EC-AEE3-3C52-97C4-43CBF705EA2A> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics 0x7fff8e53b000 - 0x7fff8e53bfff com.apple.CoreServices (775.19 - 775.19) <8AA95E32-AB13-3792-B248-FA150D8E6583> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices 0x7fff8e53c000 - 0x7fff8e58dfff com.apple.AE (712.5 - 712.5) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE 0x7fff8e58e000 - 0x7fff8e869ff7 com.apple.CoreServices.CarbonCore (1159.6 - 1159.6) <08AC074C-965B-3EDF-8E45-0707C8DE9EAD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore 0x7fff8e86a000 - 0x7fff8e89dfff com.apple.DictionaryServices (1.2 - 274) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices 0x7fff8e89e000 - 0x7fff8e8a6ff3 com.apple.CoreServices.FSEvents (1230.50.1 - 1230.50.1) <2AD1B0E5-7214-37C4-8D11-A27C9CAC0F74> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents 0x7fff8e8a7000 - 0x7fff8ea13ff7 com.apple.LaunchServices (775.19 - 775.19) <1CF81B5F-BA1A-3FC6-B4F9-E0A319AE94D0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices 0x7fff8ea14000 - 0x7fff8eac4ffb com.apple.Metadata (10.7.0 - 1075.40) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata 0x7fff8eac5000 - 0x7fff8eb24fff com.apple.CoreServices.OSServices (775.19 - 775.19) <724312AC-5CE8-333C-BC35-BC5AB1583D9A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices 0x7fff8eb25000 - 0x7fff8eb95fff com.apple.SearchKit (1.4.0 - 1.4.0) <7A6DDA2B-03F1-3137-BA9E-1CC211973E26> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit 0x7fff8eb96000 - 0x7fff8ebdbff7 com.apple.coreservices.SharedFileList (38 - 38) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList 0x7fff8ec64000 - 0x7fff8edb0ff3 com.apple.CoreText (352.0 - 544.12) <1ED17C4A-9E2D-3537-8C5F-FB675492A002> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText 0x7fff8ef56000 - 0x7fff8ef5bfff com.apple.DiskArbitration (2.7 - 2.7) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 0x7fff8f0ed000 - 0x7fff8f493ff3 com.apple.Foundation (6.9 - 1349.64) <49C8DA40-9E5B-33F9-B092-F50115B59E95> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 0x7fff8f4bf000 - 0x7fff8f4f0ff7 com.apple.GSS (4.0 - 2.0) <6FADED0B-0425-3567-A75A-040C5A4638EB> /System/Library/Frameworks/GSS.framework/Versions/A/GSS 0x7fff8f654000 - 0x7fff8f6e9fff com.apple.framework.IOKit (2.0.2 - 1324.50.21) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x7fff8f6ea000 - 0x7fff8f6f0ffb com.apple.IOSurface (159.6 - 159.6) <661BFCC0-85AB-3343-853E-3797932871D4> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface 0x7fff8f743000 - 0x7fff8f8a5fff com.apple.ImageIO.framework (3.3.0 - 1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO 0x7fff8f8a6000 - 0x7fff8f8aafff libGIF.dylib (1599.7) <6004F3A9-A9F3-3287-A105-72870ED4537A> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib 0x7fff8f8ab000 - 0x7fff8f99cff7 libJP2.dylib (1599.7) <447C19DA-1EC7-3145-9C03-392084CEC012> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib 0x7fff8f99d000 - 0x7fff8f9c0fff libJPEG.dylib (1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib 0x7fff8f9c1000 - 0x7fff8f9e7fff libPng.dylib (1599.7) <5EFC9938-CA0F-3AAD-AB70-210089939A74> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib 0x7fff8f9e8000 - 0x7fff8f9eaff3 libRadiance.dylib (1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib 0x7fff8f9eb000 - 0x7fff8fa39ff7 libTIFF.dylib (1599.7) <5CE8FC45-4B15-355F-AF40-8A98F0ADC9CF> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib 0x7fff907a0000 - 0x7fff907b9ff7 com.apple.Kerberos (3.0 - 1) /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos 0x7fff918dc000 - 0x7fff918e4fff com.apple.NetFS (6.0 - 4.0) <14A24D00-5673-330A-959D-87F72040DEFF> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS 0x7fff91cdb000 - 0x7fff91cf4ffb com.apple.CFOpenDirectory (10.12 - 194) <2D856BB1-4865-3B54-A39A-CCBB25A4A935> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory 0x7fff91cf5000 - 0x7fff91d00ff7 com.apple.OpenDirectory (10.12 - 194) /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory 0x7fff93d19000 - 0x7fff9401afff com.apple.security (7.0 - 57740.51.3) /System/Library/Frameworks/Security.framework/Versions/A/Security 0x7fff9401b000 - 0x7fff94090fff com.apple.securityfoundation (6.0 - 55132.50.7) <2A013E36-EEB5-3E9A-AAA7-8E10EC49E75C> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation 0x7fff940bb000 - 0x7fff940beffb com.apple.xpc.ServiceManagement (1.0 - 1) <00B5C305-37B4-378A-BCAE-5EC441A889C8> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement 0x7fff94445000 - 0x7fff944b4ff7 com.apple.SystemConfiguration (1.14 - 1.14) /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration 0x7fff96e54000 - 0x7fff96edf97f com.apple.AppleJPEG (1.0 - 1) /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG 0x7fff98966000 - 0x7fff9896fffb com.apple.CommonAuth (4.0 - 2.0) <216950CB-269F-3476-BA17-D6363AC49FBC> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth 0x7fff990b7000 - 0x7fff990c7fff com.apple.CoreEmoji (1.0 - 40.3.3) /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji 0x7fff9c14c000 - 0x7fff9c1c2ff3 com.apple.Heimdal (4.0 - 2.0) <8F9C9041-66D5-36C9-8A4C-1658035C311D> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal 0x7fff9c903000 - 0x7fff9cabafff com.apple.LanguageModeling (1.0 - 123.2.5) /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling 0x7fff9d5d8000 - 0x7fff9d600fff com.apple.MultitouchSupport.framework (368.14 - 368.14) <930109A4-6949-377F-AD30-F9B542CBAE1C> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport 0x7fff9d6b2000 - 0x7fff9d6bdfff com.apple.NetAuth (6.2 - 6.2) <97F487D6-8089-31A8-B68C-6C1EAC6ED1B5> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth 0x7fffa0515000 - 0x7fffa051bff7 com.apple.TCC (1.0 - 1) <911B534B-4AC7-34E4-935E-E42ECD008CBC> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC 0x7fffa1924000 - 0x7fffa1926ffb com.apple.loginsupport (1.0 - 1) /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport 0x7fffa197b000 - 0x7fffa1996ff7 libCRFSuite.dylib (34) /usr/lib/libCRFSuite.dylib 0x7fffa1997000 - 0x7fffa19a2fff libChineseTokenizer.dylib (21) <0886E908-A825-36AF-B94B-2361FD8BC2A1> /usr/lib/libChineseTokenizer.dylib 0x7fffa1a34000 - 0x7fffa1a35ff3 libDiagnosticMessagesClient.dylib (102) <84A04D24-0E60-3810-A8C0-90A65E2DF61A> /usr/lib/libDiagnosticMessagesClient.dylib 0x7fffa1c6d000 - 0x7fffa1c6dfff libOpenScriptingUtil.dylib (172) <90743888-C1E8-34E3-924E-1A754B2B63B9> /usr/lib/libOpenScriptingUtil.dylib 0x7fffa1c73000 - 0x7fffa1c74ffb libSystem.B.dylib (1238.51.1) /usr/lib/libSystem.B.dylib 0x7fffa1ce0000 - 0x7fffa1d0bff3 libarchive.2.dylib (41.50.2) /usr/lib/libarchive.2.dylib 0x7fffa1e05000 - 0x7fffa1e05ff3 libauto.dylib (187) <34388D0B-C539-3C1B-9408-2BC152162E43> /usr/lib/libauto.dylib 0x7fffa1e06000 - 0x7fffa1e16ff3 libbsm.0.dylib (34) <20084796-B04D-3B35-A003-EA11459557A9> /usr/lib/libbsm.0.dylib 0x7fffa1e17000 - 0x7fffa1e25ff7 libbz2.1.0.dylib (38) <25D9FACF-5583-348A-80A0-2B51DCE37680> /usr/lib/libbz2.1.0.dylib 0x7fffa1e26000 - 0x7fffa1e7cff7 libc++.1.dylib (307.5) <0B43BB5D-E6EB-3464-8DE9-B41AC8ED9D1C> /usr/lib/libc++.1.dylib 0x7fffa1e7d000 - 0x7fffa1ea7fff libc++abi.dylib (307.3) <30199352-88BF-30BD-8CFF-2A4FBE247523> /usr/lib/libc++abi.dylib 0x7fffa1ea8000 - 0x7fffa1eb8ffb libcmph.dylib (6) <2B5D405E-2D0B-3320-ABD6-622934C86ABE> /usr/lib/libcmph.dylib 0x7fffa1eb9000 - 0x7fffa1ecfff7 libcompression.dylib (39) /usr/lib/libcompression.dylib 0x7fffa1ed0000 - 0x7fffa1ed0ff7 libcoretls.dylib (121.50.4) <64B1001E-10F6-3542-A3B2-C4B49F51817F> /usr/lib/libcoretls.dylib 0x7fffa1ed1000 - 0x7fffa1ed2ff3 libcoretls_cfhelpers.dylib (121.50.4) <1A10303E-5EB0-3C7C-9165-021FCDFD934D> /usr/lib/libcoretls_cfhelpers.dylib 0x7fffa220f000 - 0x7fffa2262ff7 libcups.2.dylib (450) /usr/lib/libcups.2.dylib 0x7fffa22dd000 - 0x7fffa22ddfff libenergytrace.dylib (15) /usr/lib/libenergytrace.dylib 0x7fffa22ed000 - 0x7fffa22f2ff7 libheimdal-asn1.dylib (498.50.8) /usr/lib/libheimdal-asn1.dylib 0x7fffa22f3000 - 0x7fffa23e5ff7 libiconv.2.dylib (50) <42125B35-81D7-3FC4-9475-A26DBE10884D> /usr/lib/libiconv.2.dylib 0x7fffa23e6000 - 0x7fffa260bffb libicucore.A.dylib (57163.0.1) <325E1C97-1C45-3A7E-9AFB-D1328E31D879> /usr/lib/libicucore.A.dylib 0x7fffa2611000 - 0x7fffa2612fff liblangid.dylib (126) <2085E7A7-9A34-3735-87F4-F174EF8EABF0> /usr/lib/liblangid.dylib 0x7fffa2613000 - 0x7fffa262cffb liblzma.5.dylib (10) <44BD0279-99DD-36B5-8A6E-C11432E2098D> /usr/lib/liblzma.5.dylib 0x7fffa262d000 - 0x7fffa2643ff7 libmarisa.dylib (5) <9030D214-5D0F-30CB-AC03-902C63909362> /usr/lib/libmarisa.dylib 0x7fffa2644000 - 0x7fffa28ecff7 libmecabra.dylib (744.8) /usr/lib/libmecabra.dylib 0x7fffa291f000 - 0x7fffa2999ff3 libnetwork.dylib (856.50.56) <021B3FCF-6CFC-359D-845A-8A6AD7C54D73> /usr/lib/libnetwork.dylib 0x7fffa299a000 - 0x7fffa2d6fbc7 libobjc.A.dylib (709) <54CD8D1A-5C98-3559-B13A-932B3D3DD338> /usr/lib/libobjc.A.dylib 0x7fffa2d72000 - 0x7fffa2d76fff libpam.2.dylib (21.30.1) <71EB0D88-DE84-3C8D-A2C5-58AA282BC5BC> /usr/lib/libpam.2.dylib 0x7fffa2d77000 - 0x7fffa2da8ff7 libpcap.A.dylib (67.50.2) /usr/lib/libpcap.A.dylib 0x7fffa2dc5000 - 0x7fffa2de1ffb libresolv.9.dylib (64) /usr/lib/libresolv.9.dylib 0x7fffa2e31000 - 0x7fffa2f77fff libsqlite3.dylib (254.5) <71E9B5E9-67D8-329E-86A6-894B885A542E> /usr/lib/libsqlite3.dylib 0x7fffa306c000 - 0x7fffa3079fff libxar.1.dylib (357) <69547C64-E811-326F-BBED-490C6361BDCB> /usr/lib/libxar.1.dylib 0x7fffa307a000 - 0x7fffa3169ffb libxml2.2.dylib (30.15) <99A58C37-98A2-3430-942A-D6038C1A198C> /usr/lib/libxml2.2.dylib 0x7fffa316a000 - 0x7fffa3193fff libxslt.1.dylib (15.9) <71FFCDFF-4AAF-394C-8452-92F301FB1A46> /usr/lib/libxslt.1.dylib 0x7fffa3194000 - 0x7fffa31a5ff3 libz.1.dylib (67) <46E3FFA2-4328-327A-8D34-A03E20BFFB8E> /usr/lib/libz.1.dylib 0x7fffa31b4000 - 0x7fffa31b8ff7 libcache.dylib (79) <093A4DAB-8385-3D47-A350-E20CB7CCF7BF> /usr/lib/system/libcache.dylib 0x7fffa31b9000 - 0x7fffa31c3fff libcommonCrypto.dylib (60092.50.5) /usr/lib/system/libcommonCrypto.dylib 0x7fffa31c4000 - 0x7fffa31cbfff libcompiler_rt.dylib (62) <55D47421-772A-32AB-B529-1A46C2F43B4D> /usr/lib/system/libcompiler_rt.dylib 0x7fffa31cc000 - 0x7fffa31d4fff libcopyfile.dylib (138) <819BEA3C-DF11-3E3D-A1A1-5A51C5BF1961> /usr/lib/system/libcopyfile.dylib 0x7fffa31d5000 - 0x7fffa3258fdf libcorecrypto.dylib (442.50.19) <8A39EE06-121C-3731-A9E9-35847064B3EE> /usr/lib/system/libcorecrypto.dylib 0x7fffa3259000 - 0x7fffa328afff libdispatch.dylib (703.50.37) /usr/lib/system/libdispatch.dylib 0x7fffa328b000 - 0x7fffa3290ffb libdyld.dylib (433.5) <129D3B44-FB21-3750-9A68-48B5C3DC632B> /usr/lib/system/libdyld.dylib 0x7fffa3291000 - 0x7fffa3291ffb libkeymgr.dylib (28) <7AA011A9-DC21-3488-BF73-3B5B14D1FDD6> /usr/lib/system/libkeymgr.dylib 0x7fffa3292000 - 0x7fffa329effb libkxld.dylib (3789.51.2) <0BD544C8-A376-3F91-8426-564B4F7FE7E6> /usr/lib/system/libkxld.dylib 0x7fffa329f000 - 0x7fffa329ffff liblaunch.dylib (972.50.27) <037D198D-9B02-3EF9-A8E9-6F43EA555A9E> /usr/lib/system/liblaunch.dylib 0x7fffa32a0000 - 0x7fffa32a5ff3 libmacho.dylib (898) <17D5D855-F6C3-3B04-B680-E9BF02EF8AED> /usr/lib/system/libmacho.dylib 0x7fffa32a6000 - 0x7fffa32a8ff3 libquarantine.dylib (85.50.1) <7B32EA91-AB8B-32A4-8E52-9D3ED46CAC8E> /usr/lib/system/libquarantine.dylib 0x7fffa32a9000 - 0x7fffa32aaffb libremovefile.dylib (45) <38D4CB9C-10CD-30D3-8B7B-A515EC75FE85> /usr/lib/system/libremovefile.dylib 0x7fffa32ab000 - 0x7fffa32c3ff7 libsystem_asl.dylib (349.50.5) <096E4228-3B7C-30A6-8B13-EC909A64499A> /usr/lib/system/libsystem_asl.dylib 0x7fffa32c4000 - 0x7fffa32c4ff7 libsystem_blocks.dylib (67) <10DC5404-73AB-35B3-A277-A8AFECB476EB> /usr/lib/system/libsystem_blocks.dylib 0x7fffa32c5000 - 0x7fffa3352fef libsystem_c.dylib (1158.50.2) /usr/lib/system/libsystem_c.dylib 0x7fffa3353000 - 0x7fffa3356ffb libsystem_configuration.dylib (888.51.2) <872C8A42-0871-3424-830B-84E587A75D27> /usr/lib/system/libsystem_configuration.dylib 0x7fffa3357000 - 0x7fffa335afff libsystem_coreservices.dylib (41.4) /usr/lib/system/libsystem_coreservices.dylib 0x7fffa335b000 - 0x7fffa3373fff libsystem_coretls.dylib (121.50.4) /usr/lib/system/libsystem_coretls.dylib 0x7fffa3374000 - 0x7fffa337afff libsystem_dnssd.dylib (765.50.9) /usr/lib/system/libsystem_dnssd.dylib 0x7fffa337b000 - 0x7fffa33a4ff7 libsystem_info.dylib (503.50.4) <611DB84C-BF70-3F92-8702-B9F28A900920> /usr/lib/system/libsystem_info.dylib 0x7fffa33a5000 - 0x7fffa33c7ff7 libsystem_kernel.dylib (3789.51.2) /usr/lib/system/libsystem_kernel.dylib 0x7fffa33c8000 - 0x7fffa340ffe7 libsystem_m.dylib (3121.6) /usr/lib/system/libsystem_m.dylib 0x7fffa3410000 - 0x7fffa342eff7 libsystem_malloc.dylib (116.50.8) <48D1BBA3-914E-3C65-AF70-C33B4A1B5233> /usr/lib/system/libsystem_malloc.dylib 0x7fffa342f000 - 0x7fffa3488ffb libsystem_network.dylib (856.50.56) /usr/lib/system/libsystem_network.dylib 0x7fffa3489000 - 0x7fffa3492ff3 libsystem_networkextension.dylib (563.50.32) /usr/lib/system/libsystem_networkextension.dylib 0x7fffa3493000 - 0x7fffa349cff3 libsystem_notify.dylib (165.20.1) /usr/lib/system/libsystem_notify.dylib 0x7fffa349d000 - 0x7fffa34a5fe7 libsystem_platform.dylib (126.50.8) <5940EAB7-84D6-34DC-9B38-111648B2B589> /usr/lib/system/libsystem_platform.dylib 0x7fffa34a6000 - 0x7fffa34b0ff7 libsystem_pthread.dylib (218.51.1) <62A84A68-431D-3B54-A7B6-31367CCF2884> /usr/lib/system/libsystem_pthread.dylib 0x7fffa34b1000 - 0x7fffa34b4ff7 libsystem_sandbox.dylib (592.50.47) <87A2327D-B7A1-3E4C-A85D-D3D9484003DB> /usr/lib/system/libsystem_sandbox.dylib 0x7fffa34b5000 - 0x7fffa34b6ff3 libsystem_secinit.dylib (24.50.4) /usr/lib/system/libsystem_secinit.dylib 0x7fffa34b7000 - 0x7fffa34beffb libsystem_symptoms.dylib (532.50.47) <9CF6A47C-8343-3E85-9C27-A8D98E726A8B> /usr/lib/system/libsystem_symptoms.dylib 0x7fffa34bf000 - 0x7fffa34d2ff7 libsystem_trace.dylib (518.51.1) /usr/lib/system/libsystem_trace.dylib 0x7fffa34d3000 - 0x7fffa34d8ffb libunwind.dylib (35.3) <3D50D8A8-C460-334D-A519-2DA841102C6B> /usr/lib/system/libunwind.dylib 0x7fffa34d9000 - 0x7fffa3502ff7 libxpc.dylib (972.50.27) /usr/lib/system/libxpc.dylib External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 317840 thread_create: 0 thread_set_state: 0 VM Region Summary: ReadOnly portion of Libraries: Total=204.7M resident=0K(0%) swapped_out_or_unallocated=204.7M(100%) Writable regions: Total=97.1M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=97.1M(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Dispatch continuations 16.0M 2 Kernel Alloc Once 8K 2 MALLOC 65.0M 12 MALLOC guard page 16K 4 MALLOC_LARGE (reserved) 1168K 3 reserved VM address space (unallocated) STACK GUARD 56.0M 9 Stack 11.6M 9 VM_ALLOCATE 2.3G 77 VM_ALLOCATE (reserved) 64K 2 reserved VM address space (unallocated) __DATA 9928K 145 __LINKEDIT 116.5M 10 __TEXT 88.2M 149 __UNICODE 556K 2 mapped file 40.3M 130 shared memory 8K 3 =========== ======= ======= TOTAL 2.7G 544 TOTAL, minus reserved VM space 2.7G 544 Model: MacBookPro10,1, BootROM MBP101.00EE.B12, 4 processors, Intel Core i7, 2.3 GHz, 16 GB, SMC 2.3f35 Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120 Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xEF), Broadcom BCM43xx 1.0 (7.21.171.124.1a2) Bluetooth: Version 5.0.4f18, 3 services, 27 devices, 1 incoming serial ports Network Service: Thunderbolt Ethernet, Ethernet, en4 PCI Card: Apple 57762-A0, Ethernet Controller, Thunderbolt@195,0,0 Serial ATA Device: APPLE SSD SM512E, 500.28 GB USB Device: USB 2.0 Bus USB Device: Hub USB Device: FaceTime HD Camera (Built-in) USB Device: USB 2.0 Bus USB Device: Hub USB Device: Hub USB Device: Apple Internal Keyboard / Trackpad USB Device: BRCM20702 Hub USB Device: Bluetooth USB Host Controller USB Device: USB 3.0 Bus Thunderbolt Bus: MacBook Pro, Apple Inc., 23.4 Thunderbolt Device: Thunderbolt to Gigabit Ethernet Adapter, Apple Inc., 3, 5.5 --- @Petermarcu commented on [Wed Jun 14 2017](https://github.com/dotnet/core/issues/599#issuecomment-308614973) @m2b , Any chance you can share more about which version of everything you are running and how you installed it? Through the installer or from the tar.gz? --- @Petermarcu commented on [Wed Jun 28 2017](https://github.com/dotnet/core/issues/599#issuecomment-311856464) I'm going to close this because we need more info. Please reopen if you have more info you can share. Thanks! --- @jpcarrascal commented on [Sun Jul 09 2017](https://github.com/dotnet/core/issues/599#issuecomment-313953236) I have exactly the same problem. I am running OS X El Capitan (10.11.6). dotnet --version output is 1.0.4. I tried both the installer and running the binary from the tar.gz and the result is the same. The only difference is that in the former case I also get a ""dotnet quit unexpectedly"" window. I'd appreciate any help and I'll be happy to provide more diagnostics information if needed. Thanks! JP --- @richlander commented on [Sun Jul 09 2017](https://github.com/dotnet/core/issues/599#issuecomment-313994521) /cc @livarcocc _Copied from original issue: dotnet/cli#7777_ _Copied from original issue: dotnet/core-setup#3279_" +25157 area-System.Diagnostics System.DllNotFoundException: Unable to load DLL 'libproc': "_From xxx on October 6, 2017 16:16_ _From xxx on October 6, 2017 16:3_ xxx commented on [Thu Apr 20 2017](https://github.com/dotnet/core/issues/599) **Here is the simple test project code** using System; using Xunit; namespace ITVizion.ActionBoard.RepositoryInMemory { public class Test { [Fact] public void Test1() { Assert.Equal(1,1); } } } ========================================================================= **Here is the command window output. dotnet crashes!** blackielanetMBP:actionboard.git blackie$ dotnet test ITVizion.ActionBoard.RepositoryInMemory.Test/ITVizion.ActionBoard.RepositoryInMemory.Test.csproj Welcome to .NET Core! --------------------- Learn more about .NET Core xxx https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs. Telemetry -------------- The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry xxx https://aka.ms/dotnet-cli-telemetry. Configuring... ------------------- A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once. Decompressing 100% 5896 ms Expanding 100% 7278 ms Failed to create prime the NuGet cache. restore failed with: 134 Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'libproc': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.libproc.proc_pidpath(Int32 pid, Byte* buffer, UInt32 bufferSize) at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at Microsoft.DotNet.Cli.ForwardingApp.Execute() at Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingApp.Execute() at Microsoft.DotNet.Tools.Test.TestCommand.<>c__DisplayClass0_0.b__0() at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args) at Microsoft.DotNet.Tools.Test.TestCommand.Run(String[] args) at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient) at Microsoft.DotNet.Cli.Program.Main(String[] args) Abort trap: 6 ========================================================================= **Here is the Mac Problem Report** Process: dotnet [26183] Path: /usr/local/share/dotnet/dotnet Identifier: dotnet Version: 0 Code Type: X86-64 (Native) Parent Process: dotnet [26170] Responsible: dotnet [26183] User ID: 501 Date/Time: 2017-04-20 17:28:26.552 -0700 OS Version: Mac OS X 10.12.4 (16E195) Report Version: 12 Anonymous UUID: E3FC06FA-F158-98C8-DDAD-74F8F018A97A Sleep/Wake UUID: ECCEF7E0-8ED4-4B9C-9EF0-00E0D60B0BBE Time Awake Since Boot: 470000 seconds Time Since Wake: 5600 seconds System Integrity Protection: disabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Application Specific Information: abort() called Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fffa33bed42 __pthread_kill + 10 1 libsystem_pthread.dylib 0x00007fffa34ac5bf pthread_kill + 90 2 libsystem_c.dylib 0x00007fffa3324420 abort + 129 3 libcoreclr.dylib 0x0000000104dc1312 PROCEndProcess(void*, unsigned int, int) + 226 4 libcoreclr.dylib 0x00000001050928c1 UnwindManagedExceptionPass1(PAL_SEHException&, _CONTEXT*) + 833 5 libcoreclr.dylib 0x0000000105092979 DispatchManagedException(PAL_SEHException&, bool) + 73 6 libcoreclr.dylib 0x0000000104f1c6c9 PreStubWorker + 937 7 libcoreclr.dylib 0x00000001050a0579 ThePreStub + 92 8 ??? 0x000000010c1cad79 0 + 4498173305 9 ??? 0x000000010c1c66b1 0 + 4498155185 10 ??? 0x000000010c1c6181 0 + 4498153857 11 ??? 0x000000010c1c51cb 0 + 4498149835 12 ??? 0x000000010bc5cabd 0 + 4492479165 13 ??? 0x000000010bc574b2 0 + 4492457138 14 ??? 0x000000010bc6271b 0 + 4492502811 15 ??? 0x000000010bc5f21f 0 + 4492489247 16 ??? 0x000000010bc55bc2 0 + 4492450754 17 ??? 0x000000010bc5d4df 0 + 4492481759 18 ??? 0x000000010bc5cf8d 0 + 4492480397 19 libcoreclr.dylib 0x000000010509f9a1 CallDescrWorkerInternal + 124 20 libcoreclr.dylib 0x0000000104f8bb43 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 707 21 libcoreclr.dylib 0x0000000104e59fc4 RunMain(MethodDesc*, short, int*, PtrArray**) + 932 22 libcoreclr.dylib 0x0000000104e5a18d Assembly::ExecuteMainMethod(PtrArray**, int) + 221 23 libcoreclr.dylib 0x0000000104e9762a CorHost2::ExecuteAssembly(unsigned int, char16_t const*, int, char16_t const**, unsigned int*) + 442 24 libcoreclr.dylib 0x0000000104dca4f3 coreclr_execute_assembly + 259 25 libhostpolicy.dylib 0x0000000104d027e8 coreclr::execute_assembly(void*, unsigned int, int, char const**, char const*, unsigned int*) + 152 26 libhostpolicy.dylib 0x0000000104cf1388 run(arguments_t const&) + 20568 27 libhostpolicy.dylib 0x0000000104cf1d0d corehost_main + 1405 28 libhostfxr.dylib 0x0000000104c3c90e execute_app(std::__1::basic_string, std::__1::allocator > const&, corehost_init_t*, int, char const**) + 446 29 libhostfxr.dylib 0x0000000104c52679 fx_muxer_t::read_config_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::unordered_map, std::__1::allocator >, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >, std::__1::hash, std::__1::allocator > >, std::__1::equal_to, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > const, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > > > > const&, int, char const**, host_mode_t) + 8441 30 libhostfxr.dylib 0x0000000104c504a9 fx_muxer_t::parse_args_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int, int, char const**, bool, host_mode_t, bool*) + 8425 31 libhostfxr.dylib 0x0000000104c53a09 fx_muxer_t::execute(int, char const**) + 4537 32 libhostfxr.dylib 0x0000000104c3c985 hostfxr_main + 53 33 dotnet 0x0000000104b707ac run(int, char const**) + 1420 34 dotnet 0x0000000104b708ee main + 158 35 libdyld.dylib 0x00007fffa3290235 start + 1 Thread 1: 0 libsystem_kernel.dylib 0x00007fffa33b734a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fffa33b6797 mach_msg + 55 2 libcoreclr.dylib 0x0000000104dc761a MachMessage::Receive(unsigned int) + 74 3 libcoreclr.dylib 0x0000000104dc6539 SEHExceptionThread(void*) + 105 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 2: 0 libsystem_kernel.dylib 0x00007fffa33c019e poll + 10 1 libcoreclr.dylib 0x0000000104db9afe CorUnix::CPalSynchronizationManager::ThreadPrepareForShutdown() + 30 2 libcoreclr.dylib 0x0000000104dbb729 CorUnix::CPalSynchronizationManager::WorkerThread(void*) + 1177 3 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 3: 0 libsystem_kernel.dylib 0x00007fffa33bea3e __open + 10 1 libcoreclr.dylib 0x0000000104e36b0f TwoWayPipe::WaitForConnection() + 31 2 libcoreclr.dylib 0x0000000104e2e8c1 DbgTransportSession::TransportWorker() + 145 3 libcoreclr.dylib 0x0000000104e2d4e9 DbgTransportSession::TransportWorkerStatic(void*) + 9 4 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 5 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 6 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 7 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 4: 0 libsystem_kernel.dylib 0x00007fffa33bebf2 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fffa34aa86e _pthread_cond_wait + 712 2 libcoreclr.dylib 0x0000000104db97a2 CorUnix::CPalSynchronizationManager::ThreadNativeWait(CorUnix::_ThreadNativeWaitData*, unsigned int, CorUnix::ThreadWakeupReason*, unsigned int*) + 306 3 libcoreclr.dylib 0x0000000104db93f6 CorUnix::CPalSynchronizationManager::BlockThread(CorUnix::CPalThread*, unsigned int, bool, bool, CorUnix::ThreadWakeupReason*, unsigned int*) + 390 4 libcoreclr.dylib 0x0000000104dbe3e8 CorUnix::InternalWaitForMultipleObjectsEx(CorUnix::CPalThread*, unsigned int, void* const*, int, unsigned int, int) + 1912 5 libcoreclr.dylib 0x0000000104e2bc73 DebuggerRCThread::MainLoop() + 755 6 libcoreclr.dylib 0x0000000104e2b927 DebuggerRCThread::ThreadProc() + 263 7 libcoreclr.dylib 0x0000000104e2b5d4 DebuggerRCThread::ThreadProcStatic(void*) + 132 8 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 9 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 10 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 11 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 5: 0 libsystem_kernel.dylib 0x00007fffa33bebf2 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fffa34aa86e _pthread_cond_wait + 712 2 libcoreclr.dylib 0x0000000104db9785 CorUnix::CPalSynchronizationManager::ThreadNativeWait(CorUnix::_ThreadNativeWaitData*, unsigned int, CorUnix::ThreadWakeupReason*, unsigned int*) + 277 3 libcoreclr.dylib 0x0000000104db93f6 CorUnix::CPalSynchronizationManager::BlockThread(CorUnix::CPalThread*, unsigned int, bool, bool, CorUnix::ThreadWakeupReason*, unsigned int*) + 390 4 libcoreclr.dylib 0x0000000104dbe3e8 CorUnix::InternalWaitForMultipleObjectsEx(CorUnix::CPalThread*, unsigned int, void* const*, int, unsigned int, int) + 1912 5 libcoreclr.dylib 0x0000000104dbe636 WaitForSingleObjectEx + 70 6 libcoreclr.dylib 0x000000010507b340 CLREventBase::WaitEx(unsigned int, WaitMode, PendingSync*) + 176 7 libcoreclr.dylib 0x0000000104fd0e6f FinalizerThread::WaitForFinalizerEvent(CLREvent*) + 31 8 libcoreclr.dylib 0x0000000104fd0fe3 FinalizerThread::FinalizerThreadWorker(void*) + 115 9 libcoreclr.dylib 0x0000000104f4b15a ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) + 378 10 libcoreclr.dylib 0x0000000104f4b859 ManagedThreadBase::FinalizerBase(void (*)(void*)) + 73 11 libcoreclr.dylib 0x0000000104fd13cc FinalizerThread::FinalizerThreadStart(void*) + 204 12 libcoreclr.dylib 0x0000000104dc3e48 CorUnix::CPalThread::ThreadEntry(void*) + 328 13 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 14 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 15 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 6: 0 libsystem_kernel.dylib 0x00007fffa33b734a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fffa33b6797 mach_msg + 55 2 libclrjit.dylib 0x0000000105bb174a MachMessage::Receive(unsigned int) + 74 3 libclrjit.dylib 0x0000000105bb0669 SEHExceptionThread(void*) + 105 4 libsystem_pthread.dylib 0x00007fffa34a99af _pthread_body + 180 5 libsystem_pthread.dylib 0x00007fffa34a98fb _pthread_start + 286 6 libsystem_pthread.dylib 0x00007fffa34a9101 thread_start + 13 Thread 7: 0 libsystem_kernel.dylib 0x00007fffa33bf44e __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fffa34a9695 _pthread_wqthread + 1426 2 libsystem_pthread.dylib 0x00007fffa34a90f1 start_wqthread + 13 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x0000000000000006 rcx: 0x00007fff5b0927c8 rdx: 0x0000000000000000 rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00007fff5b0927f0 rsp: 0x00007fff5b0927c8 r8: 0x00007faa1b8088f8 r9: 0x00000000007a682f r10: 0x0000000008000000 r11: 0x0000000000000206 r12: 0x00007fff5b092e30 r13: 0x0000000000000000 r14: 0x00007fffac1f43c0 r15: 0x0000000000000000 rip: 0x00007fffa33bed42 rfl: 0x0000000000000206 cr2: 0x00007fffac1d6128 Logical CPU: 0 Error Code: 0x02000148 Trap Number: 133 Binary Images: 0x104b65000 - 0x104b81ff3 +dotnet (0) <3D909F9D-70EC-3599-8378-D1E3D3F3C4C2> /usr/local/share/dotnet/dotnet 0x104bbf000 - 0x104c62ff7 +libhostfxr.dylib (0) /usr/local/share/dotnet/host/fxr/1.1.0/libhostfxr.dylib 0x104c8c000 - 0x104d48ff3 +libhostpolicy.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libhostpolicy.dylib 0x104d79000 - 0x10529cfff +libcoreclr.dylib (0) <40FA6CB2-53C9-3176-8516-FE40B2D8F3C8> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libcoreclr.dylib 0x1055cc000 - 0x105609dc7 dyld (433.5) <8239D0D7-66F6-3C44-A77F-586F74525DA3> /usr/lib/dyld 0x1059f4000 - 0x105bf6fff +libclrjit.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/libclrjit.dylib 0x105cc0000 - 0x105cc8fff +System.Globalization.Native.dylib (0) <60FCF655-55BA-37A9-924C-157C9E8E7AC1> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Globalization.Native.dylib 0x10759d000 - 0x1075a4ffb +System.Native.dylib (0) <5F1F2A95-1960-379D-A897-AF4F76F06D11> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.1.1/System.Native.dylib 0x7fff8a057000 - 0x7fff8a057fff com.apple.Accelerate (1.11 - Accelerate 1.11) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate 0x7fff8a070000 - 0x7fff8a6b0fe3 com.apple.vImage (8.1 - ???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage 0x7fff8a6b1000 - 0x7fff8a878fef libBLAS.dylib (1185.50.4) <7AF8DB9A-E33B-30EB-8767-87AFB951E231> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 0x7fff8a879000 - 0x7fff8a890fff libBNNS.dylib (15) <26F32264-148E-35E5-A280-CA035CB3D6F0> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib 0x7fff8a891000 - 0x7fff8ac9cfff libLAPACK.dylib (1185.50.4) <51B2BABA-F736-3663-885A-65A8991D3560> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib 0x7fff8ac9d000 - 0x7fff8acb3fff libLinearAlgebra.dylib (1185.50.4) <0EC25E70-05DC-3615-85B6-81721566CF1D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib 0x7fff8acb4000 - 0x7fff8acbafff libQuadrature.dylib (3) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib 0x7fff8acbb000 - 0x7fff8acceff7 libSparseBLAS.dylib (1185.50.4) <0BDCF6A7-0228-3719-81C7-B6EBC7911320> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib 0x7fff8accf000 - 0x7fff8ae1cff7 libvDSP.dylib (600) <9D9CFF97-2A64-341A-AB35-DC0C76068B9C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib 0x7fff8ae1d000 - 0x7fff8aed4fff libvMisc.dylib (600) <661B825D-274E-3B85-B160-89873AD65A62> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib 0x7fff8aed5000 - 0x7fff8aed5fff com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib 0x7fff8bf7f000 - 0x7fff8bf7ffff com.apple.ApplicationServices (48 - 48) <847E54B5-DEA4-3B50-93CE-4FC67789F179> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 0x7fff8bf80000 - 0x7fff8bfeeff7 com.apple.ApplicationServices.ATS (377 - 422.2) <012ACEE0-9A90-3998-8495-734E105117C0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS 0x7fff8c088000 - 0x7fff8c1b7ff7 libFontParser.dylib (194.11) <635DF6EF-18DF-3D06-90AA-88C509B43068> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib 0x7fff8c1b8000 - 0x7fff8c202fff libFontRegistry.dylib (196.4) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib 0x7fff8c2fe000 - 0x7fff8c3a8ff7 com.apple.ColorSync (4.12.0 - 502.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync 0x7fff8c3a9000 - 0x7fff8c3f9ff7 com.apple.HIServices (1.22 - 591) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices 0x7fff8c3fa000 - 0x7fff8c409ff3 com.apple.LangAnalysis (1.7.0 - 1.7.0) <2CBE7F61-2056-3F96-99A1-0D527796AFA6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis 0x7fff8c40a000 - 0x7fff8c457fff com.apple.print.framework.PrintCore (12 - 491) <5027FD58-F0EE-33E4-8577-934CA06CD2AF> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore 0x7fff8c458000 - 0x7fff8c493fff com.apple.QD (3.12 - 313) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD 0x7fff8c494000 - 0x7fff8c49fff7 com.apple.speech.synthesis.framework (6.3.3 - 6.3.3) <5808F070-8199-36C9-B3C9-F9B98D5AA359> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis 0x7fff8c4a0000 - 0x7fff8c6acfff com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <6EEF498D-8233-3622-B34B-49FDD9D4DF14> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox 0x7fff8c816000 - 0x7fff8cbf0ff7 com.apple.CFNetwork (811.4.18 - 811.4.18) <9CE329E8-6177-3474-976D-F5C63FC875CD> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 0x7fff8d20c000 - 0x7fff8d299fff com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <184D9C49-248F-3374-944C-FD1A99A6B32E> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio 0x7fff8d2ae000 - 0x7fff8d5adff3 com.apple.CoreData (120 - 754.2) /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData 0x7fff8d65b000 - 0x7fff8daeefff com.apple.CoreFoundation (6.9 - 1349.65) <2B7C4BA4-D69E-3651-93DF-3930880B5084> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x7fff8daef000 - 0x7fff8e192ff7 com.apple.CoreGraphics (2.0 - 1070.22) <1676F5EC-AEE3-3C52-97C4-43CBF705EA2A> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics 0x7fff8e53b000 - 0x7fff8e53bfff com.apple.CoreServices (775.19 - 775.19) <8AA95E32-AB13-3792-B248-FA150D8E6583> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices 0x7fff8e53c000 - 0x7fff8e58dfff com.apple.AE (712.5 - 712.5) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE 0x7fff8e58e000 - 0x7fff8e869ff7 com.apple.CoreServices.CarbonCore (1159.6 - 1159.6) <08AC074C-965B-3EDF-8E45-0707C8DE9EAD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore 0x7fff8e86a000 - 0x7fff8e89dfff com.apple.DictionaryServices (1.2 - 274) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices 0x7fff8e89e000 - 0x7fff8e8a6ff3 com.apple.CoreServices.FSEvents (1230.50.1 - 1230.50.1) <2AD1B0E5-7214-37C4-8D11-A27C9CAC0F74> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents 0x7fff8e8a7000 - 0x7fff8ea13ff7 com.apple.LaunchServices (775.19 - 775.19) <1CF81B5F-BA1A-3FC6-B4F9-E0A319AE94D0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices 0x7fff8ea14000 - 0x7fff8eac4ffb com.apple.Metadata (10.7.0 - 1075.40) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata 0x7fff8eac5000 - 0x7fff8eb24fff com.apple.CoreServices.OSServices (775.19 - 775.19) <724312AC-5CE8-333C-BC35-BC5AB1583D9A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices 0x7fff8eb25000 - 0x7fff8eb95fff com.apple.SearchKit (1.4.0 - 1.4.0) <7A6DDA2B-03F1-3137-BA9E-1CC211973E26> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit 0x7fff8eb96000 - 0x7fff8ebdbff7 com.apple.coreservices.SharedFileList (38 - 38) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList 0x7fff8ec64000 - 0x7fff8edb0ff3 com.apple.CoreText (352.0 - 544.12) <1ED17C4A-9E2D-3537-8C5F-FB675492A002> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText 0x7fff8ef56000 - 0x7fff8ef5bfff com.apple.DiskArbitration (2.7 - 2.7) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 0x7fff8f0ed000 - 0x7fff8f493ff3 com.apple.Foundation (6.9 - 1349.64) <49C8DA40-9E5B-33F9-B092-F50115B59E95> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 0x7fff8f4bf000 - 0x7fff8f4f0ff7 com.apple.GSS (4.0 - 2.0) <6FADED0B-0425-3567-A75A-040C5A4638EB> /System/Library/Frameworks/GSS.framework/Versions/A/GSS 0x7fff8f654000 - 0x7fff8f6e9fff com.apple.framework.IOKit (2.0.2 - 1324.50.21) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x7fff8f6ea000 - 0x7fff8f6f0ffb com.apple.IOSurface (159.6 - 159.6) <661BFCC0-85AB-3343-853E-3797932871D4> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface 0x7fff8f743000 - 0x7fff8f8a5fff com.apple.ImageIO.framework (3.3.0 - 1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO 0x7fff8f8a6000 - 0x7fff8f8aafff libGIF.dylib (1599.7) <6004F3A9-A9F3-3287-A105-72870ED4537A> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib 0x7fff8f8ab000 - 0x7fff8f99cff7 libJP2.dylib (1599.7) <447C19DA-1EC7-3145-9C03-392084CEC012> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib 0x7fff8f99d000 - 0x7fff8f9c0fff libJPEG.dylib (1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib 0x7fff8f9c1000 - 0x7fff8f9e7fff libPng.dylib (1599.7) <5EFC9938-CA0F-3AAD-AB70-210089939A74> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib 0x7fff8f9e8000 - 0x7fff8f9eaff3 libRadiance.dylib (1599.7) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib 0x7fff8f9eb000 - 0x7fff8fa39ff7 libTIFF.dylib (1599.7) <5CE8FC45-4B15-355F-AF40-8A98F0ADC9CF> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib 0x7fff907a0000 - 0x7fff907b9ff7 com.apple.Kerberos (3.0 - 1) /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos 0x7fff918dc000 - 0x7fff918e4fff com.apple.NetFS (6.0 - 4.0) <14A24D00-5673-330A-959D-87F72040DEFF> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS 0x7fff91cdb000 - 0x7fff91cf4ffb com.apple.CFOpenDirectory (10.12 - 194) <2D856BB1-4865-3B54-A39A-CCBB25A4A935> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory 0x7fff91cf5000 - 0x7fff91d00ff7 com.apple.OpenDirectory (10.12 - 194) /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory 0x7fff93d19000 - 0x7fff9401afff com.apple.security (7.0 - 57740.51.3) /System/Library/Frameworks/Security.framework/Versions/A/Security 0x7fff9401b000 - 0x7fff94090fff com.apple.securityfoundation (6.0 - 55132.50.7) <2A013E36-EEB5-3E9A-AAA7-8E10EC49E75C> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation 0x7fff940bb000 - 0x7fff940beffb com.apple.xpc.ServiceManagement (1.0 - 1) <00B5C305-37B4-378A-BCAE-5EC441A889C8> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement 0x7fff94445000 - 0x7fff944b4ff7 com.apple.SystemConfiguration (1.14 - 1.14) /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration 0x7fff96e54000 - 0x7fff96edf97f com.apple.AppleJPEG (1.0 - 1) /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG 0x7fff98966000 - 0x7fff9896fffb com.apple.CommonAuth (4.0 - 2.0) <216950CB-269F-3476-BA17-D6363AC49FBC> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth 0x7fff990b7000 - 0x7fff990c7fff com.apple.CoreEmoji (1.0 - 40.3.3) /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji 0x7fff9c14c000 - 0x7fff9c1c2ff3 com.apple.Heimdal (4.0 - 2.0) <8F9C9041-66D5-36C9-8A4C-1658035C311D> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal 0x7fff9c903000 - 0x7fff9cabafff com.apple.LanguageModeling (1.0 - 123.2.5) /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling 0x7fff9d5d8000 - 0x7fff9d600fff com.apple.MultitouchSupport.framework (368.14 - 368.14) <930109A4-6949-377F-AD30-F9B542CBAE1C> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport 0x7fff9d6b2000 - 0x7fff9d6bdfff com.apple.NetAuth (6.2 - 6.2) <97F487D6-8089-31A8-B68C-6C1EAC6ED1B5> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth 0x7fffa0515000 - 0x7fffa051bff7 com.apple.TCC (1.0 - 1) <911B534B-4AC7-34E4-935E-E42ECD008CBC> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC 0x7fffa1924000 - 0x7fffa1926ffb com.apple.loginsupport (1.0 - 1) /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport 0x7fffa197b000 - 0x7fffa1996ff7 libCRFSuite.dylib (34) /usr/lib/libCRFSuite.dylib 0x7fffa1997000 - 0x7fffa19a2fff libChineseTokenizer.dylib (21) <0886E908-A825-36AF-B94B-2361FD8BC2A1> /usr/lib/libChineseTokenizer.dylib 0x7fffa1a34000 - 0x7fffa1a35ff3 libDiagnosticMessagesClient.dylib (102) <84A04D24-0E60-3810-A8C0-90A65E2DF61A> /usr/lib/libDiagnosticMessagesClient.dylib 0x7fffa1c6d000 - 0x7fffa1c6dfff libOpenScriptingUtil.dylib (172) <90743888-C1E8-34E3-924E-1A754B2B63B9> /usr/lib/libOpenScriptingUtil.dylib 0x7fffa1c73000 - 0x7fffa1c74ffb libSystem.B.dylib (1238.51.1) /usr/lib/libSystem.B.dylib 0x7fffa1ce0000 - 0x7fffa1d0bff3 libarchive.2.dylib (41.50.2) /usr/lib/libarchive.2.dylib 0x7fffa1e05000 - 0x7fffa1e05ff3 libauto.dylib (187) <34388D0B-C539-3C1B-9408-2BC152162E43> /usr/lib/libauto.dylib 0x7fffa1e06000 - 0x7fffa1e16ff3 libbsm.0.dylib (34) <20084796-B04D-3B35-A003-EA11459557A9> /usr/lib/libbsm.0.dylib 0x7fffa1e17000 - 0x7fffa1e25ff7 libbz2.1.0.dylib (38) <25D9FACF-5583-348A-80A0-2B51DCE37680> /usr/lib/libbz2.1.0.dylib 0x7fffa1e26000 - 0x7fffa1e7cff7 libc++.1.dylib (307.5) <0B43BB5D-E6EB-3464-8DE9-B41AC8ED9D1C> /usr/lib/libc++.1.dylib 0x7fffa1e7d000 - 0x7fffa1ea7fff libc++abi.dylib (307.3) <30199352-88BF-30BD-8CFF-2A4FBE247523> /usr/lib/libc++abi.dylib 0x7fffa1ea8000 - 0x7fffa1eb8ffb libcmph.dylib (6) <2B5D405E-2D0B-3320-ABD6-622934C86ABE> /usr/lib/libcmph.dylib 0x7fffa1eb9000 - 0x7fffa1ecfff7 libcompression.dylib (39) /usr/lib/libcompression.dylib 0x7fffa1ed0000 - 0x7fffa1ed0ff7 libcoretls.dylib (121.50.4) <64B1001E-10F6-3542-A3B2-C4B49F51817F> /usr/lib/libcoretls.dylib 0x7fffa1ed1000 - 0x7fffa1ed2ff3 libcoretls_cfhelpers.dylib (121.50.4) <1A10303E-5EB0-3C7C-9165-021FCDFD934D> /usr/lib/libcoretls_cfhelpers.dylib 0x7fffa220f000 - 0x7fffa2262ff7 libcups.2.dylib (450) /usr/lib/libcups.2.dylib 0x7fffa22dd000 - 0x7fffa22ddfff libenergytrace.dylib (15) /usr/lib/libenergytrace.dylib 0x7fffa22ed000 - 0x7fffa22f2ff7 libheimdal-asn1.dylib (498.50.8) /usr/lib/libheimdal-asn1.dylib 0x7fffa22f3000 - 0x7fffa23e5ff7 libiconv.2.dylib (50) <42125B35-81D7-3FC4-9475-A26DBE10884D> /usr/lib/libiconv.2.dylib 0x7fffa23e6000 - 0x7fffa260bffb libicucore.A.dylib (57163.0.1) <325E1C97-1C45-3A7E-9AFB-D1328E31D879> /usr/lib/libicucore.A.dylib 0x7fffa2611000 - 0x7fffa2612fff liblangid.dylib (126) <2085E7A7-9A34-3735-87F4-F174EF8EABF0> /usr/lib/liblangid.dylib 0x7fffa2613000 - 0x7fffa262cffb liblzma.5.dylib (10) <44BD0279-99DD-36B5-8A6E-C11432E2098D> /usr/lib/liblzma.5.dylib 0x7fffa262d000 - 0x7fffa2643ff7 libmarisa.dylib (5) <9030D214-5D0F-30CB-AC03-902C63909362> /usr/lib/libmarisa.dylib 0x7fffa2644000 - 0x7fffa28ecff7 libmecabra.dylib (744.8) /usr/lib/libmecabra.dylib 0x7fffa291f000 - 0x7fffa2999ff3 libnetwork.dylib (856.50.56) <021B3FCF-6CFC-359D-845A-8A6AD7C54D73> /usr/lib/libnetwork.dylib 0x7fffa299a000 - 0x7fffa2d6fbc7 libobjc.A.dylib (709) <54CD8D1A-5C98-3559-B13A-932B3D3DD338> /usr/lib/libobjc.A.dylib 0x7fffa2d72000 - 0x7fffa2d76fff libpam.2.dylib (21.30.1) <71EB0D88-DE84-3C8D-A2C5-58AA282BC5BC> /usr/lib/libpam.2.dylib 0x7fffa2d77000 - 0x7fffa2da8ff7 libpcap.A.dylib (67.50.2) /usr/lib/libpcap.A.dylib 0x7fffa2dc5000 - 0x7fffa2de1ffb libresolv.9.dylib (64) /usr/lib/libresolv.9.dylib 0x7fffa2e31000 - 0x7fffa2f77fff libsqlite3.dylib (254.5) <71E9B5E9-67D8-329E-86A6-894B885A542E> /usr/lib/libsqlite3.dylib 0x7fffa306c000 - 0x7fffa3079fff libxar.1.dylib (357) <69547C64-E811-326F-BBED-490C6361BDCB> /usr/lib/libxar.1.dylib 0x7fffa307a000 - 0x7fffa3169ffb libxml2.2.dylib (30.15) <99A58C37-98A2-3430-942A-D6038C1A198C> /usr/lib/libxml2.2.dylib 0x7fffa316a000 - 0x7fffa3193fff libxslt.1.dylib (15.9) <71FFCDFF-4AAF-394C-8452-92F301FB1A46> /usr/lib/libxslt.1.dylib 0x7fffa3194000 - 0x7fffa31a5ff3 libz.1.dylib (67) <46E3FFA2-4328-327A-8D34-A03E20BFFB8E> /usr/lib/libz.1.dylib 0x7fffa31b4000 - 0x7fffa31b8ff7 libcache.dylib (79) <093A4DAB-8385-3D47-A350-E20CB7CCF7BF> /usr/lib/system/libcache.dylib 0x7fffa31b9000 - 0x7fffa31c3fff libcommonCrypto.dylib (60092.50.5) /usr/lib/system/libcommonCrypto.dylib 0x7fffa31c4000 - 0x7fffa31cbfff libcompiler_rt.dylib (62) <55D47421-772A-32AB-B529-1A46C2F43B4D> /usr/lib/system/libcompiler_rt.dylib 0x7fffa31cc000 - 0x7fffa31d4fff libcopyfile.dylib (138) <819BEA3C-DF11-3E3D-A1A1-5A51C5BF1961> /usr/lib/system/libcopyfile.dylib 0x7fffa31d5000 - 0x7fffa3258fdf libcorecrypto.dylib (442.50.19) <8A39EE06-121C-3731-A9E9-35847064B3EE> /usr/lib/system/libcorecrypto.dylib 0x7fffa3259000 - 0x7fffa328afff libdispatch.dylib (703.50.37) /usr/lib/system/libdispatch.dylib 0x7fffa328b000 - 0x7fffa3290ffb libdyld.dylib (433.5) <129D3B44-FB21-3750-9A68-48B5C3DC632B> /usr/lib/system/libdyld.dylib 0x7fffa3291000 - 0x7fffa3291ffb libkeymgr.dylib (28) <7AA011A9-DC21-3488-BF73-3B5B14D1FDD6> /usr/lib/system/libkeymgr.dylib 0x7fffa3292000 - 0x7fffa329effb libkxld.dylib (3789.51.2) <0BD544C8-A376-3F91-8426-564B4F7FE7E6> /usr/lib/system/libkxld.dylib 0x7fffa329f000 - 0x7fffa329ffff liblaunch.dylib (972.50.27) <037D198D-9B02-3EF9-A8E9-6F43EA555A9E> /usr/lib/system/liblaunch.dylib 0x7fffa32a0000 - 0x7fffa32a5ff3 libmacho.dylib (898) <17D5D855-F6C3-3B04-B680-E9BF02EF8AED> /usr/lib/system/libmacho.dylib 0x7fffa32a6000 - 0x7fffa32a8ff3 libquarantine.dylib (85.50.1) <7B32EA91-AB8B-32A4-8E52-9D3ED46CAC8E> /usr/lib/system/libquarantine.dylib 0x7fffa32a9000 - 0x7fffa32aaffb libremovefile.dylib (45) <38D4CB9C-10CD-30D3-8B7B-A515EC75FE85> /usr/lib/system/libremovefile.dylib 0x7fffa32ab000 - 0x7fffa32c3ff7 libsystem_asl.dylib (349.50.5) <096E4228-3B7C-30A6-8B13-EC909A64499A> /usr/lib/system/libsystem_asl.dylib 0x7fffa32c4000 - 0x7fffa32c4ff7 libsystem_blocks.dylib (67) <10DC5404-73AB-35B3-A277-A8AFECB476EB> /usr/lib/system/libsystem_blocks.dylib 0x7fffa32c5000 - 0x7fffa3352fef libsystem_c.dylib (1158.50.2) /usr/lib/system/libsystem_c.dylib 0x7fffa3353000 - 0x7fffa3356ffb libsystem_configuration.dylib (888.51.2) <872C8A42-0871-3424-830B-84E587A75D27> /usr/lib/system/libsystem_configuration.dylib 0x7fffa3357000 - 0x7fffa335afff libsystem_coreservices.dylib (41.4) /usr/lib/system/libsystem_coreservices.dylib 0x7fffa335b000 - 0x7fffa3373fff libsystem_coretls.dylib (121.50.4) /usr/lib/system/libsystem_coretls.dylib 0x7fffa3374000 - 0x7fffa337afff libsystem_dnssd.dylib (765.50.9) /usr/lib/system/libsystem_dnssd.dylib 0x7fffa337b000 - 0x7fffa33a4ff7 libsystem_info.dylib (503.50.4) <611DB84C-BF70-3F92-8702-B9F28A900920> /usr/lib/system/libsystem_info.dylib 0x7fffa33a5000 - 0x7fffa33c7ff7 libsystem_kernel.dylib (3789.51.2) /usr/lib/system/libsystem_kernel.dylib 0x7fffa33c8000 - 0x7fffa340ffe7 libsystem_m.dylib (3121.6) /usr/lib/system/libsystem_m.dylib 0x7fffa3410000 - 0x7fffa342eff7 libsystem_malloc.dylib (116.50.8) <48D1BBA3-914E-3C65-AF70-C33B4A1B5233> /usr/lib/system/libsystem_malloc.dylib 0x7fffa342f000 - 0x7fffa3488ffb libsystem_network.dylib (856.50.56) /usr/lib/system/libsystem_network.dylib 0x7fffa3489000 - 0x7fffa3492ff3 libsystem_networkextension.dylib (563.50.32) /usr/lib/system/libsystem_networkextension.dylib 0x7fffa3493000 - 0x7fffa349cff3 libsystem_notify.dylib (165.20.1) /usr/lib/system/libsystem_notify.dylib 0x7fffa349d000 - 0x7fffa34a5fe7 libsystem_platform.dylib (126.50.8) <5940EAB7-84D6-34DC-9B38-111648B2B589> /usr/lib/system/libsystem_platform.dylib 0x7fffa34a6000 - 0x7fffa34b0ff7 libsystem_pthread.dylib (218.51.1) <62A84A68-431D-3B54-A7B6-31367CCF2884> /usr/lib/system/libsystem_pthread.dylib 0x7fffa34b1000 - 0x7fffa34b4ff7 libsystem_sandbox.dylib (592.50.47) <87A2327D-B7A1-3E4C-A85D-D3D9484003DB> /usr/lib/system/libsystem_sandbox.dylib 0x7fffa34b5000 - 0x7fffa34b6ff3 libsystem_secinit.dylib (24.50.4) /usr/lib/system/libsystem_secinit.dylib 0x7fffa34b7000 - 0x7fffa34beffb libsystem_symptoms.dylib (532.50.47) <9CF6A47C-8343-3E85-9C27-A8D98E726A8B> /usr/lib/system/libsystem_symptoms.dylib 0x7fffa34bf000 - 0x7fffa34d2ff7 libsystem_trace.dylib (518.51.1) /usr/lib/system/libsystem_trace.dylib 0x7fffa34d3000 - 0x7fffa34d8ffb libunwind.dylib (35.3) <3D50D8A8-C460-334D-A519-2DA841102C6B> /usr/lib/system/libunwind.dylib 0x7fffa34d9000 - 0x7fffa3502ff7 libxpc.dylib (972.50.27) /usr/lib/system/libxpc.dylib External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 317840 thread_create: 0 thread_set_state: 0 VM Region Summary: ReadOnly portion of Libraries: Total=204.7M resident=0K(0%) swapped_out_or_unallocated=204.7M(100%) Writable regions: Total=97.1M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=97.1M(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Dispatch continuations 16.0M 2 Kernel Alloc Once 8K 2 MALLOC 65.0M 12 MALLOC guard page 16K 4 MALLOC_LARGE (reserved) 1168K 3 reserved VM address space (unallocated) STACK GUARD 56.0M 9 Stack 11.6M 9 VM_ALLOCATE 2.3G 77 VM_ALLOCATE (reserved) 64K 2 reserved VM address space (unallocated) __DATA 9928K 145 __LINKEDIT 116.5M 10 __TEXT 88.2M 149 __UNICODE 556K 2 mapped file 40.3M 130 shared memory 8K 3 =========== ======= ======= TOTAL 2.7G 544 TOTAL, minus reserved VM space 2.7G 544 Model: MacBookPro10,1, BootROM MBP101.00EE.B12, 4 processors, Intel Core i7, 2.3 GHz, 16 GB, SMC 2.3f35 Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In Graphics: NVIDIA GeForce GT 650M, NVIDIA GeForce GT 650M, PCIe, 1024 MB Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120 Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x802C, 0x384B54463531323634485A2D314736453120 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xEF), Broadcom BCM43xx 1.0 (7.21.171.124.1a2) Bluetooth: Version 5.0.4f18, 3 services, 27 devices, 1 incoming serial ports Network Service: Thunderbolt Ethernet, Ethernet, en4 PCI Card: Apple 57762-A0, Ethernet Controller, Thunderbolt@195,0,0 Serial ATA Device: APPLE SSD SM512E, 500.28 GB USB Device: USB 2.0 Bus USB Device: Hub USB Device: FaceTime HD Camera (Built-in) USB Device: USB 2.0 Bus USB Device: Hub USB Device: Hub USB Device: Apple Internal Keyboard / Trackpad USB Device: BRCM20702 Hub USB Device: Bluetooth USB Host Controller USB Device: USB 3.0 Bus Thunderbolt Bus: MacBook Pro, Apple Inc., 23.4 Thunderbolt Device: Thunderbolt to Gigabit Ethernet Adapter, Apple Inc., 3, 5.5 --- xxx commented on [Wed Jun 14 2017](https://github.com/dotnet/core/issues/599#issuecomment-308614973) xxx , Any chance you can share more about which version of everything you are running and how you installed it? Through the installer or from the tar.gz? --- xxx commented on [Wed Jun 28 2017](https://github.com/dotnet/core/issues/599#issuecomment-311856464) I'm going to close this because we need more info. Please reopen if you have more info you can share. Thanks! --- xxx commented on [Sun Jul 09 2017](https://github.com/dotnet/core/issues/599#issuecomment-313953236) I have exactly the same problem. I am running OS X El Capitan (10.11.6). dotnet --version output is 1.0.4. I tried both the installer and running the binary from the tar.gz and the result is the same. The only difference is that in the former case I also get a ""dotnet quit unexpectedly"" window. I'd appreciate any help and I'll be happy to provide more diagnostics information if needed. Thanks! JP --- xxx commented on [Sun Jul 09 2017](https://github.com/dotnet/core/issues/599#issuecomment-313994521) /cc xxx _Copied from original issue: dotnet/cli#7777_ _Copied from original issue: dotnet/core-setup#3279_" 25159 area-System.Drawing Remove forced GC during System.Drawing.Common shutdown System.Drawing.Common is forcing GC and waiting for pending finalizers during shutdown: https://github.com/dotnet/corefx/blob/7d3cd2adff8272efcf1bc6e0bf1902de6fd9e8e9/src/System.Drawing.Common/src/System/Drawing/GdiplusNative.Unix.cs#L95 This is potential reliability and performance and problem. This sequence is only going to collect unreachable objects, and so it is not providing any sort of guarantees that there are no outstanding GDI references. If this is really necessary for some reason, the code needs to have a good comment describing why. -25162 area-System.Threading Improve Diagnose Api of (Buffered)Channel _From @JanEggers on September 23, 2017 9:39_ hi there, im currently experimenting with System.Threading.Tasks.Channels.Channel. for perfromance analysis it would be really great if BoundedChannel would be a public type and has properties that express the current buffer fill level. Right now im using reflection to get that Info but i wonder why you make that an internal. (the info is there via debugview but neither toString or any public api can be used to get that information) im using that information to determine performance bottlenecks in my app. I know that consumers of buffers with growing fill level have to be optimized. _Copied from original issue: dotnet/corefxlab#1782_ -25163 area-System.Net [ManagedHandler] Do not change the request object provided by the user It is general implementation policy in other handlers in System.Net.Http, to not modify the HttpRequestMessage object provided by the user through the SendAsync method. In managed handler implementation, this object is modified in several places, revisit this design to minimize altering the request object from user. For more information refer to the conversation in PR #25090 +25162 area-System.Threading Improve Diagnose Api of (Buffered)Channel _From xxx on September 23, 2017 9:39_ hi there, im currently experimenting with System.Threading.Tasks.Channels.Channel. for perfromance analysis it would be really great if BoundedChannel would be a public type and has properties that express the current buffer fill level. Right now im using reflection to get that Info but i wonder why you make that an internal. (the info is there via debugview but neither toString or any public api can be used to get that information) im using that information to determine performance bottlenecks in my app. I know that consumers of buffers with growing fill level have to be optimized. _Copied from original issue: dotnet/corefxlab#1782_ +25163 area-System.Net [ManagedHandler] Do not change the request object provided by the user It is general implementation policy in other handlers in System.Net.Http, to not modify the HttpRequestMessage object provided by the user through the SendAsync method. In managed handler implementation, this object is modified in several places, revisit this design to minimize altering the request object from user. For more information refer to the conversation in PR #25090 25168 area-System.Runtime Refactor S.R.Caching ObjectCache.Host tests to be able to run without creating a separate AppDomain A handful of tests for System.Runtime.Caching borrowed from Mono are using a separate app domains to test ObjectCache.Host extensibility points. They would need some refactoring before we can run them in Core. One simple option would be to put each of them into a separate project; another is to combine them all to run once. In my preliminary tests they would add about 2-3% of additional code coverage. -25169 area-System.Runtime Adding tests for System.Runtime.Caching Also adding a solution file for all System.Runtime.Caching projects +25169 area-System.Runtime Adding tests for System.Runtime.Caching Also adding a solution file for all System.Runtime.Caching projects 25171 area-Infrastructure System.Threading.Tasks.Dataflow 4.8.0 requires too many packages to install in VS 2015 We use System.Threading.Tasks.Dataflow library 4.7.0 in VS 2015 project. It is a single library for .NET 4.5 When we upgrade to 4.8.0, it requires a lot of other libraries. This makes is painful to upgrade and to create new deployment and installer for our project because we must now include many unnecessary libraries. ``` Attempting to gather dependency information for package 'System.Threading.Tasks.Dataflow.4.8.0' with respect to project 'src\Project1', targeting '.NETFramework,Version=v4.6.2' Gathering dependency information took 5,32 sec Attempting to resolve dependencies for package 'System.Threading.Tasks.Dataflow.4.8.0' with DependencyBehavior 'Lowest' One or more unresolved package dependency constraints detected in the existing packages.config file. All dependency constraints must be resolved to add or update packages. If these packages are being updated this message may be ignored, if not the following error(s) may be blocking the current package operation: 'System.Threading.Tasks.Dataflow 4.7.0' Resolving dependency information took 0 ms Resolving actions to install package 'System.Threading.Tasks.Dataflow.4.8.0' Resolved actions to install package 'System.Threading.Tasks.Dataflow.4.8.0' Found package 'Microsoft.NETCore.Platforms 1.1.0' in 'C:\dev\Project1\packages'. Found package 'NETStandard.Library 1.6.1' in 'C:\dev\Project1\packages'. Found package 'Microsoft.Win32.Primitives 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.AppContext 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Collections 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Collections.Concurrent 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Console 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Diagnostics.Debug 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Diagnostics.DiagnosticSource 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Diagnostics.Tools 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Diagnostics.Tracing 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Dynamic.Runtime 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Globalization 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Globalization.Calendars 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.IO 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.IO.Compression 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.IO.Compression.ZipFile 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.IO.FileSystem.Primitives 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.IO.FileSystem 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Linq 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Linq.Expressions 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Net.Primitives 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Net.Sockets 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.ObjectModel 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Reflection 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Reflection.Extensions 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Reflection.Primitives 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Resources.ResourceManager 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime.Extensions 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime.Handles 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime.InteropServices 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime.InteropServices.RuntimeInformation 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Runtime.Numerics 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Security.Cryptography.Encoding 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Security.Cryptography.Primitives 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Security.Cryptography.Algorithms 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Security.Cryptography.X509Certificates 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Net.Http 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Text.Encoding 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Text.Encoding.Extensions 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Text.RegularExpressions 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Threading 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Threading.Tasks 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Threading.Timer 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Xml.ReaderWriter 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Xml.XDocument 4.3.0' in 'C:\dev\Project1\packages'. Found package 'System.Threading.Tasks.Dataflow 4.8.0' in 'C:\dev\Project1\packages'. Removed package 'System.Threading.Tasks.Dataflow.4.7.0' from 'packages.config' Successfully uninstalled 'System.Threading.Tasks.Dataflow.4.7.0' from Project1 Package 'Microsoft.NETCore.Platforms.1.1.0' already exists in folder 'C:\dev\Project1\packages' Added package 'Microsoft.NETCore.Platforms.1.1.0' to 'packages.config' Successfully installed 'Microsoft.NETCore.Platforms 1.1.0' to Project1 Package 'Microsoft.Win32.Primitives.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'Microsoft.Win32.Primitives.4.3.0' to 'packages.config' Successfully installed 'Microsoft.Win32.Primitives 4.3.0' to Project1 Package 'System.AppContext.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.AppContext.4.3.0' to 'packages.config' Successfully installed 'System.AppContext 4.3.0' to Project1 Package 'System.Collections.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Collections.4.3.0' to 'packages.config' Successfully installed 'System.Collections 4.3.0' to Project1 Package 'System.Collections.Concurrent.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Collections.Concurrent.4.3.0' to 'packages.config' Successfully installed 'System.Collections.Concurrent 4.3.0' to Project1 Package 'System.Console.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Console.4.3.0' to 'packages.config' Successfully installed 'System.Console 4.3.0' to Project1 Package 'System.Diagnostics.Debug.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Diagnostics.Debug.4.3.0' to 'packages.config' Successfully installed 'System.Diagnostics.Debug 4.3.0' to Project1 Package 'System.Diagnostics.DiagnosticSource.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Diagnostics.DiagnosticSource.4.3.0' to 'packages.config' Successfully installed 'System.Diagnostics.DiagnosticSource 4.3.0' to Project1 Package 'System.Diagnostics.Tools.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Diagnostics.Tools.4.3.0' to 'packages.config' Successfully installed 'System.Diagnostics.Tools 4.3.0' to Project1 Package 'System.Diagnostics.Tracing.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Diagnostics.Tracing.4.3.0' to 'packages.config' Successfully installed 'System.Diagnostics.Tracing 4.3.0' to Project1 Package 'System.Dynamic.Runtime.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Dynamic.Runtime.4.3.0' to 'packages.config' Successfully installed 'System.Dynamic.Runtime 4.3.0' to Project1 Package 'System.Globalization.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Globalization.4.3.0' to 'packages.config' Successfully installed 'System.Globalization 4.3.0' to Project1 Package 'System.Globalization.Calendars.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Globalization.Calendars.4.3.0' to 'packages.config' Successfully installed 'System.Globalization.Calendars 4.3.0' to Project1 Package 'System.IO.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.IO.4.3.0' to 'packages.config' Successfully installed 'System.IO 4.3.0' to Project1 Package 'System.IO.Compression.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.IO.Compression.4.3.0' to 'packages.config' Successfully installed 'System.IO.Compression 4.3.0' to Project1 Package 'System.IO.Compression.ZipFile.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.IO.Compression.ZipFile.4.3.0' to 'packages.config' Successfully installed 'System.IO.Compression.ZipFile 4.3.0' to Project1 Package 'System.IO.FileSystem.Primitives.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.IO.FileSystem.Primitives.4.3.0' to 'packages.config' Successfully installed 'System.IO.FileSystem.Primitives 4.3.0' to Project1 Package 'System.IO.FileSystem.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.IO.FileSystem.4.3.0' to 'packages.config' Successfully installed 'System.IO.FileSystem 4.3.0' to Project1 Package 'System.Linq.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Linq.4.3.0' to 'packages.config' Successfully installed 'System.Linq 4.3.0' to Project1 Package 'System.Linq.Expressions.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Linq.Expressions.4.3.0' to 'packages.config' Successfully installed 'System.Linq.Expressions 4.3.0' to Project1 Package 'System.Net.Primitives.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Net.Primitives.4.3.0' to 'packages.config' Successfully installed 'System.Net.Primitives 4.3.0' to Project1 Package 'System.Net.Sockets.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Net.Sockets.4.3.0' to 'packages.config' Successfully installed 'System.Net.Sockets 4.3.0' to Project1 Package 'System.ObjectModel.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.ObjectModel.4.3.0' to 'packages.config' Successfully installed 'System.ObjectModel 4.3.0' to Project1 Package 'System.Reflection.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Reflection.4.3.0' to 'packages.config' Successfully installed 'System.Reflection 4.3.0' to Project1 Package 'System.Reflection.Extensions.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Reflection.Extensions.4.3.0' to 'packages.config' Successfully installed 'System.Reflection.Extensions 4.3.0' to Project1 Package 'System.Reflection.Primitives.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Reflection.Primitives.4.3.0' to 'packages.config' Successfully installed 'System.Reflection.Primitives 4.3.0' to Project1 Package 'System.Resources.ResourceManager.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Resources.ResourceManager.4.3.0' to 'packages.config' Successfully installed 'System.Resources.ResourceManager 4.3.0' to Project1 Package 'System.Runtime.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.4.3.0' to 'packages.config' Successfully installed 'System.Runtime 4.3.0' to Project1 Package 'System.Runtime.Extensions.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.Extensions.4.3.0' to 'packages.config' Successfully installed 'System.Runtime.Extensions 4.3.0' to Project1 Package 'System.Runtime.Handles.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.Handles.4.3.0' to 'packages.config' Successfully installed 'System.Runtime.Handles 4.3.0' to Project1 Package 'System.Runtime.InteropServices.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.InteropServices.4.3.0' to 'packages.config' Successfully installed 'System.Runtime.InteropServices 4.3.0' to Project1 Package 'System.Runtime.InteropServices.RuntimeInformation.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.InteropServices.RuntimeInformation.4.3.0' to 'packages.config' Successfully installed 'System.Runtime.InteropServices.RuntimeInformation 4.3.0' to Project1 Package 'System.Runtime.Numerics.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Runtime.Numerics.4.3.0' to 'packages.config' Successfully installed 'System.Runtime.Numerics 4.3.0' to Project1 Package 'System.Security.Cryptography.Encoding.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Security.Cryptography.Encoding.4.3.0' to 'packages.config' Successfully installed 'System.Security.Cryptography.Encoding 4.3.0' to Project1 Package 'System.Security.Cryptography.Primitives.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Security.Cryptography.Primitives.4.3.0' to 'packages.config' Successfully installed 'System.Security.Cryptography.Primitives 4.3.0' to Project1 Package 'System.Security.Cryptography.Algorithms.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Security.Cryptography.Algorithms.4.3.0' to 'packages.config' Successfully installed 'System.Security.Cryptography.Algorithms 4.3.0' to Project1 Package 'System.Security.Cryptography.X509Certificates.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Security.Cryptography.X509Certificates.4.3.0' to 'packages.config' Successfully installed 'System.Security.Cryptography.X509Certificates 4.3.0' to Project1 Package 'System.Net.Http.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Net.Http.4.3.0' to 'packages.config' Successfully installed 'System.Net.Http 4.3.0' to Project1 Package 'System.Text.Encoding.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Text.Encoding.4.3.0' to 'packages.config' Successfully installed 'System.Text.Encoding 4.3.0' to Project1 Package 'System.Text.Encoding.Extensions.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Text.Encoding.Extensions.4.3.0' to 'packages.config' Successfully installed 'System.Text.Encoding.Extensions 4.3.0' to Project1 Package 'System.Text.RegularExpressions.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Text.RegularExpressions.4.3.0' to 'packages.config' Successfully installed 'System.Text.RegularExpressions 4.3.0' to Project1 Package 'System.Threading.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Threading.4.3.0' to 'packages.config' Successfully installed 'System.Threading 4.3.0' to Project1 Package 'System.Threading.Tasks.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Threading.Tasks.4.3.0' to 'packages.config' Successfully installed 'System.Threading.Tasks 4.3.0' to Project1 Package 'System.Threading.Timer.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Threading.Timer.4.3.0' to 'packages.config' Successfully installed 'System.Threading.Timer 4.3.0' to Project1 Package 'System.Xml.ReaderWriter.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Xml.ReaderWriter.4.3.0' to 'packages.config' Successfully installed 'System.Xml.ReaderWriter 4.3.0' to Project1 Package 'System.Xml.XDocument.4.3.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Xml.XDocument.4.3.0' to 'packages.config' Successfully installed 'System.Xml.XDocument 4.3.0' to Project1 Adding package 'NETStandard.Library.1.6.1', which only has dependencies, to project 'Project1'. Package 'NETStandard.Library.1.6.1' already exists in folder 'C:\dev\Project1\packages' Added package 'NETStandard.Library.1.6.1' to 'packages.config' Successfully installed 'NETStandard.Library 1.6.1' to Project1 Package 'System.Threading.Tasks.Dataflow.4.8.0' already exists in folder 'C:\dev\Project1\packages' Added package 'System.Threading.Tasks.Dataflow.4.8.0' to 'packages.config' Successfully installed 'System.Threading.Tasks.Dataflow 4.8.0' to Project1 Removing package 'System.Threading.Tasks.Dataflow.4.7.0' from folder 'C:\dev\Project1\packages' Removed package 'System.Threading.Tasks.Dataflow.4.7.0' from folder 'C:\dev\Project1\packages' Executing nuget actions took 29,5 sec ========== Finished ========== Time Elapsed: 00:01:19.7792723 ``` -25172 area-System.Collections [API] Stack constructed from another Stack is not the same as the original. `Stack` has only only one copy constructor and it accepts `IEnumerable`. The constructor does not try to check whether the given collection is another `Stack`. The constructor just enumerates the source stack (in the `Pop()` order) and pushes all values in the new stack. The result is that the new stack is actually reversed. I consider this behavior unexpected and an example of bad API. http://referencesource.microsoft.com/#System/compmod/system/collections/generic/stack.cs,66 +25172 area-System.Collections [API] Stack constructed from another Stack is not the same as the original. `Stack` has only only one copy constructor and it accepts `IEnumerable`. The constructor does not try to check whether the given collection is another `Stack`. The constructor just enumerates the source stack (in the `Pop()` order) and pushes all values in the new stack. The result is that the new stack is actually reversed. I consider this behavior unexpected and an example of bad API. http://referencesource.microsoft.com/#System/compmod/system/collections/generic/stack.cs,66 25173 area-Microsoft.CSharp Simplify Microsoft.CSharp's NameManager and root namespace symbol "Now that it's static a few further simplifications are possible. * Remove `NameTable.Lookup(key, length)` No longer used. * Make ""void"" and the empty string predefined names. Use `GetPredefinedName` rather than Lookup to retrieve them. * Remove `NameManager.Lookup` and `NameTable.Lookup` Former no longer used after the above. Latter only used in an assertion that another assertion duplicates. * Make root namespace's `NamespaceSymbol` singleton in `NamespaceSymbol` Since it has no parent and isn't stored in the symbol table, and since name management is now static, it need no longer hang off `BSYMMGR`. " 25174 area-Microsoft.CSharp Merge CheckedConstant & CheckedNormal in MS.CSharp's BindingContext Always set to the same value (and indeed the distinction isn't meaningful in dynamic code), so just have one such property. 25177 area-Infrastructure Referencing a standard 2 library with enums from 4.7.1 app doesn't work. "Create a console app targeting 4.7.1 (you can start with a windows app or a netcore 2 app template. Just make sure you target 4.7.1 on both) Create a helper assembly targeting standard 2.0 reference helper assembly from console app 4.7.1 add a public enum in helper assembly targeting standard 2.0 use public enum in console ap 4.7.1 you will receive error: 2>Program.cs(10,13,10,21): error CS0012: The type 'Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 2>Program.cs(10,26,10,34): error CS0012: The type 'Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 2>Program.cs(10,35,10,38): error CS0012: The type 'Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 2>Done building project ""ConsoleOne.csproj"" -- FAILED. Switch target of console app from 4.7.1 to 4.6.1 Error goes away. Everything works. Adding package from nuget to 4.7.1 app doesn't seem to do anything to fix the problem. See attached. [LibStandard.zip](https://github.com/dotnet/corefx/files/1461883/LibStandard.zip) " -25178 area-Serialization Update the link of the instruction and use fwlink. @shmao @zhenlan @mconnew +25178 area-Serialization Update the link of the instruction and use fwlink. xxx xxx @mconnew 25180 area-System.Net HttpClient throws 'The server returned an invalid or unrecognized response' error When connecting to an SSE stream and in chunked mode, the HttpClient will throw an 'The server returned an invalid or unrecognized response' error every single time. To see the issue, try to connect to [This API Call ](https://horizon-testnet.stellar.org/accounts/GAZHWW2NBPDVJ6PEEOZ2X43QV5JUDYS3XN4OWOTBR6WUACTUML2CCJLI/transactions?limit=50)and use the header Accept: text/event-stream, HttpClient will throw an exception every single time. It's easy to reproduce, Fiddler seems to return back the results just fine. -25182 area-System.Memory Add MemoryExtensions to CoreLib and type forward for .NET Core > A larger concern for me around the extension method isn't that they're exposed from System.Memory.dll, but that they're not available for use inside corelib, such that we've had to duplicate some of the functionality in order to implement various things in corelib, and those duplicated implementations aren't as good / efficient / complex as the ones in System.Memory.dll. https://github.com/dotnet/coreclr/blob/master/src/mscorlib/shared/System/StringSpanHelpers.cs, for example the trivial IndexOf implementation here versus the optimized implementation in https://github.com/dotnet/corefx/blob/master/src/System.Memory/src/System/SpanExtensions.cs This is a good reason why to move SpanExtensions into CoreLib. From thread (for context): https://github.com/dotnet/corefx/pull/25120#discussion_r149837741 cc @KrzysztofCwalina, @jkotas, @stephentoub +25182 area-System.Memory Add MemoryExtensions to CoreLib and type forward for .NET Core > A larger concern for me around the extension method isn't that they're exposed from System.Memory.dll, but that they're not available for use inside corelib, such that we've had to duplicate some of the functionality in order to implement various things in corelib, and those duplicated implementations aren't as good / efficient / complex as the ones in System.Memory.dll. https://github.com/dotnet/coreclr/blob/master/src/mscorlib/shared/System/StringSpanHelpers.cs, for example the trivial IndexOf implementation here versus the optimized implementation in https://github.com/dotnet/corefx/blob/master/src/System.Memory/src/System/SpanExtensions.cs This is a good reason why to move SpanExtensions into CoreLib. From thread (for context): https://github.com/dotnet/corefx/pull/25120#discussion_r149837741 cc @KrzysztofCwalina, @jkotas, @stephentoub 25183 area-Microsoft.CSharp MS.CSharp: Avoid allocation in AllocParams(int, TypeArray, int) This is called to split the type arguments for nested classes between those for the type itself and those for the outer type. The most common case will return the empty array or the source array (only really splitting for a type both within a generic type, that also adds further type parameters), but getting there will allocate an array and possibly do a lookup. Catch and short-circuit on these cases. 25184 area-Meta PowerShell v6.0.0-beta.7 xml save on Linux and MacOS X has an additional [] in DOCTYPE "[xml]$XmlDoc = get-content 'Info.plist' $XmlDoc.Save('def.plist') The two lines above work correctly in PowerShell 5.1 on Windows 10 but incorrectly with PowerShell v6 on Linux and MacOSX. Notice the [] just before the end in DOCTYPE. " 25187 area-System.Net [WIP] SslStream Throttle This would satisfy the throttling. I will test the perf on windows and linux and see if it makes any difference on windows. If it does then I will need to push the semaphore down into the PAL. I am submitting the PR to check the outerloop. 25188 area-Infrastructure Infra: Sync the sources of {ReadOnly}Memory and friends between corefx and corelib > I'd suggest someone compares the files in the two repos and gets them to be as close as possible. I noticed there are various discrepancies between them that make diff'ing harder, like differences in XML comments, differences in the ordering of members, etc. Use ifdefs for small differences From https://github.com/dotnet/coreclr/pull/14906#discussion_r149799699 (for context) Also figure out and setup a source mirroring strategy between the two repos. cc @stephentoub, @KrzysztofCwalina, @jkotas, @brianrob, @safern 25189 area-Meta ItemRef - Ref element accessor for types that already have an indexer. "We have a number of **existing** indexable types that could benefit from a ref-returning element accessor. For example `ImmutableArray`. A typical problem is that such types already have a get/set indexer, so the only way to add an indexed byref access to elements is to add a ref returning method. I believe this will happen one way or another, since there is a motivation. So, I think we should standardize on the name of such method. Here I want to propose the following convention: ```C# // when container is readonly - I.E. ImmutableArray public ref readonly T ItemRef(int index); // when container is writeable - I.E. List public ref T ItemRef(int index); ``` The alternatives could be - “ElementAt” – often already taken - “Item” – clashes with the underlying name of the indexer - “Address” - could work too, but I think “ItemRef” reads a lot better. - “ItemAt” – original proposed name, ""ItemRef"" still seems better Examples of uses: ```C# public class Program { static void Main(string[] args) { var o = new MyCollection(); // use for assignment o.ItemRef(1) = 42; // bind to a ref local ref var first = ref o.ItemRef(1); first = 42; // read indirectly. (assume the API takes ""in"" parameter) Print(o.ItemRef(1)); } } class MyCollection { public ref T ItemRef(int index) => throw null; } ``` Once we agree on the name/pattern we can enter separate bugs for particular APIs. " -25190 area-Microsoft.CSharp Microsoft.CSharp should allow operations on identically-named types "In the rare case that two types have exactly the same type name, dynamic operations will fail: ```C# dynamic x = Activator.CreateInstance( AssemblyBuilder .DefineDynamicAssembly(new AssemblyName(""TestAssembly""), AssemblyBuilderAccess.Run) .DefineDynamicModule(""TestModule"") .DefineType(""TestType"", TypeAttributes.Public) .CreateType()); dynamic y = Activator.CreateInstance( AssemblyBuilder .DefineDynamicAssembly(new AssemblyName(""TestAssembly""), AssemblyBuilderAccess.Run) .DefineDynamicModule(""TestModule"") .DefineType(""TestType"", TypeAttributes.Public) .CreateType()); x.Equals(y); // This or any other operation with both objects fails. ``` #23021 changed the exception thrown in this case from `RuntimeBinderInternalCompilerException` to `RuntimeBinderException`; pretty much a change from ""sorry, we got this wrong"" to ""sorry, you can't do that"". Ideally such cases should succeed. While the case is extremely rare: 1. It's always better to allow users to do something that prohibit. 2. By the very nature of dynamic binding, there's no theoretical justification for disallowing it. 3. Handling the exception requires resetting a lot of state. Allowing this reset means a lot of objects being passed around so that the type manager, symbol manager, etc. can be accessed by those objects that need them, tying those objects to each other, in order to deal with this rare case. While the first two points relate to what is an obscure edge case, the third is a greater motivation for allowing this IMO. CC: @VSadov @OmarTawfik " +25190 area-Microsoft.CSharp Microsoft.CSharp should allow operations on identically-named types "In the rare case that two types have exactly the same type name, dynamic operations will fail: ```C# dynamic x = Activator.CreateInstance( AssemblyBuilder .DefineDynamicAssembly(new AssemblyName(""TestAssembly""), AssemblyBuilderAccess.Run) .DefineDynamicModule(""TestModule"") .DefineType(""TestType"", TypeAttributes.Public) .CreateType()); dynamic y = Activator.CreateInstance( AssemblyBuilder .DefineDynamicAssembly(new AssemblyName(""TestAssembly""), AssemblyBuilderAccess.Run) .DefineDynamicModule(""TestModule"") .DefineType(""TestType"", TypeAttributes.Public) .CreateType()); x.Equals(y); // This or any other operation with both objects fails. ``` #23021 changed the exception thrown in this case from `RuntimeBinderInternalCompilerException` to `RuntimeBinderException`; pretty much a change from ""sorry, we got this wrong"" to ""sorry, you can't do that"". Ideally such cases should succeed. While the case is extremely rare: 1. It's always better to allow users to do something that prohibit. 2. By the very nature of dynamic binding, there's no theoretical justification for disallowing it. 3. Handling the exception requires resetting a lot of state. Allowing this reset means a lot of objects being passed around so that the type manager, symbol manager, etc. can be accessed by those objects that need them, tying those objects to each other, in order to deal with this rare case. While the first two points relate to what is an obscure edge case, the third is a greater motivation for allowing this IMO. CC: xxx xxx " 25191 area-Microsoft.CSharp Allow dynamic use objects of different, identically-named, types. Fixes #25190 * Remove `ResetBindException` No longer used. * Cache types' arity for `FindSymWithMatchingArity` instead of on each loop * Move byref handling out of `LoadSymbolsFromType()` Only one caller can possibly pass byref types, so handle it there. * Further simplify type matching. Since we're looking to match types, and types with different arity don't match, just look for the type itself. * Remove dead code and tidy up. Paths within the case of the type `.IsNullableType()` handle the possibility of the type itself being `Nullable`, but that type returns false for the nullable type check (possibly not true in the static compiler?). Remove the branches for that, and tidy up. * Move handling of nullable types. Since there can be corresponding `AggregateSymbol`s we have to test for it anyway, so may as well test before any more work is done. * Use `InsertRange` instead of repeated inserts. Fewer allocations and copies. 25193 area-System.Runtime Environment.ProcessorCount does not take into account cgroup/Docker limits This leads to managed code over-dimensioning when running in Docker. coreclr takes into account docker cpu limits: https://github.com/dotnet/coreclr/blob/dbfd10c94055fb5af823b4a7e30774641afcb3b2/src/classlibnative/bcltype/system.cpp#L349-L350 25196 area-Microsoft.CSharp Defer calculation of AggregateType.GetBaseClass() in Microsoft.CSharp Push logic for calculating the substitution necessary on base types when type or the base are generic into `AggregateType` and defer it until first call. This allows cycling chains of derivation and type parameters. Fixes #7527 * Add test for variant of cyclic type definitions. Confirms fix for #7527 also fixes #23706 * Overrides for `SubstType` and `SubstTypeCore` for `AggregateType` when used In one case replaces the equivalent existing override completely. Allows type-checking and casting to be avoided. 25197 area-System.IO Change timeout errorCode from ERROR_SUCCESS to ERROR_SEM_TIMEOUT fixes #24635 -25198 area-System.Net [WIP] Test Only to compare outerloop for SslStream +25198 area-System.Net [WIP] Test Only to compare outerloop for SslStream 25199 area-System.Net Reverts Cancellation on SslStream Checking that this now passes the outerloop 25202 area-Microsoft.CSharp Key AggregateType lookup on triple of symbol, outer type and type args Avoid potential for false key matching. Fixes #25201 * Remove `ErrorType.typeArgs` Consistently empty for named errors, null for unnamed, so have no real effect. Allows removal of remaining use of `GetNameFromPtrs()` * Add multiply into KeyPair.GetHashCode() Mix the bits a bit more. 25204 area-System.IO Add Crc32 to ZipArchiveEntry fixes #22292 25205 area-System.Data System.Data.SqlClient packaging From https://github.com/dotnet/corefx/pull/25134#discussion_r150415393: > And for better or worse, we already have some such dependencies, e.g. System.Data.SqlClient isn't part of the .NET Runtime download but it does P/Invoke into the System.Net.Security.Native.so/dylib shim. We either need to fix that, or we need to add a test coverage to ensure that you can mix and match different versions of .NET Core Runtime (that bundles `System.Net.Security.Native.so/dylib`) with different versions of `System.Data.SqlClient` and document/enforce the supported mixing and matching. The packaging for `System.Data.SqlClient` is suspect in general: All build configurations in https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/Configurations.props are netstandard. How am I going to get the .NET Core shims that the implementation depends on when I install it on Mono? -25206 area-System.Net Support cancellation on SslStream.AuthenticateAs*Async methods cc: @Priya91 Previous attempt in https://github.com/dotnet/corefx/pull/24857 reverted in https://github.com/dotnet/corefx/pull/25203 due to it causing a failing outerloop test SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success (outerloop tests weren't run on the original PR). +25206 area-System.Net Support cancellation on SslStream.AuthenticateAs*Async methods cc: xxx Previous attempt in https://github.com/dotnet/corefx/pull/24857 reverted in https://github.com/dotnet/corefx/pull/25203 due to it causing a failing outerloop test SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success (outerloop tests weren't run on the original PR). 25207 area-System.Net Disable SendAsync_ExpectedDiagnosticCancelledActivityLogging test It's failing sporadically on outerloop, both Windows and Unix, both WinHttp/CurlHandler and ManagedHandler. 25209 area-Microsoft.CSharp Fix handling of unary operations on nullable enums in Microsoft.CSharp The code that covered this case would put a `NullableType` where an `AggregateType` would then be expected, and throw `NullReferenceException` after an `as AggregateType` it would hit. There was also no code to handle the necessary cast, then lifted operation, then cast back. Catch the case of nullable enums early, and turn it into a cast on the operation on a cast to the underlying type (or `int` if smaller than `int`) Fixes #25067 * Remove now-dead buggy code for unary operators and nullable enums. * Remove dead code in `ExpressionTreeRewriter` Would carry out the cast-of-operation-of-cast rewrite already done in the initial bind, but this having been already done makes it unreachable. -25210 area-System.Threading Test failure: System.Threading.Channels.Tests.ChannelTests/DefaultReadAsync_CatchesTryWriteExceptions Opened on behalf of @Sunny-pu The test `System.Threading.Channels.Tests.ChannelTests/DefaultReadAsync_CatchesTryWriteExceptions` has failed. Assert.Equal() Failure\r Expected: Faulted\r Actual: RanToCompletion Stack Trace: at System.Threading.Channels.Tests.ChannelTests.d__10.MoveNext() in E:\A\_work\722\s\corefx\src\System.Threading.Channels\tests\ChannelTests.cs:line 134 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 Build : Master - 20171113.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release +25210 area-System.Threading Test failure: System.Threading.Channels.Tests.ChannelTests/DefaultReadAsync_CatchesTryWriteExceptions Opened on behalf of @Sunny-pu The test `System.Threading.Channels.Tests.ChannelTests/DefaultReadAsync_CatchesTryWriteExceptions` has failed. Assert.Equal() Failure\r Expected: Faulted\r Actual: RanToCompletion Stack Trace: at System.Threading.Channels.Tests.ChannelTests.d__10.MoveNext() in E:\A\_work\722\s\corefx\src\System.Threading.Channels\tests\ChannelTests.cs:line 134 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 --- 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 63 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 182 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 150 Build : Master - 20171113.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release 25211 area-System.IO Fix misleading exception message, cleanup code I'm newbie(on contributing), i grab the issue and try to help. Fixes #24817 25212 area-Infrastructure How to integrate CoreFX Binaries manually in a Linux System Hallo .Net Core Community, im looking for a way to integrate my selfbuild Binaries of coreclr and corefx in an UbuntuSystem. I build the binaries for x86 to get .Net Core running on a x86 Ubuntu System. Now i need a guide where and how to place the binaries in this UbuntuSystem. Can someone give me a instruction or a link to an guide wich i was not able to find. Greetings Philipp 25214 area-Microsoft.CSharp Microsoft.CSharp: Remove check for ExprMemberGroup being used as a lvalue `ExprMemberGroup`s only exist within `ExprCall` and `ExprProperty` objects and can never be passed as operands, so this is unreachable. (Unlike in static compilation where it would be the result of someone trying e.g. `obj.ToString = 3`). Results in removal of ERR_AssgReadonlyLocalCause, contributes to #22470. * Remove `ErrArgIds` class Only place it was instantiated has now been removed. Clean-up all unused `ErrArgKind` as well as `Ids` that this makes unused. 25215 area-Microsoft.CSharp Microsoft.CSharp: Replace IExprWithArgs interface with ExprWithArgs class in hierarchy Allows for less casting, and tighter return types. * Preliminary: Remove always-null parameter to `BindToProperty` Removal of paths for that parameter being null allows tightening return type from `Expr` to `ExprProperty`. * Replace `IExprWithArgs` interface with `ExprWithArgs` class in hierarchy Makes `OptionalArguments` non-virtual Allows implicit cast from `ExprWithArgs` to `Expr` for reduced casting. * Change return types from `Expr` to `ExprWithArgs` where possible. * Remove redundant cast from `ReorderArgumentsForNamedAndOptional` Also make it void, since it always returns the same argument, to be clearer it's mutating its argument. * Remove redundant call to `ExprMemberGroup.OptionalObject` property. Stored as part of extension-method handling, but dynamic doesn't support extension methods. 25217 area-Microsoft.CSharp Microsoft.CSharp: Remove code for checking possible membergroup → delegate conversion * Remove `MethodGroupReturnTypeInference()` method. Initial `if (!(pSource is ExprMemberGroup memGrp))` will always be hit, since we can't have a member group expression as an argument within dynamic code, so it will always return false. * Remove `GroupToArgsBinder._pDelegate` The only remaining call to the constructor always passes null to this. Remove it, and paths for it being non-null. Results in removal of `ERR_MethDelegateMismatch`. Contributes to #22470 -25219 area-System.Net Make curl http handler use SSL_CERT_FILE/SSL_CERT_DIR environment variables. Implements https://github.com/dotnet/corefx/issues/24281 CC @stephentoub @bartonjs Some interesting points: - The curl command ignores SSL_CERT_FILE when SSL_CERT_DIR is set. The underlying libcurl supports passing both to OpenSSL. - HTTPS proxy support requires a recent version of libcurl. The SSL config for the proxy is passed as separate options. +25219 area-System.Net Make curl http handler use SSL_CERT_FILE/SSL_CERT_DIR environment variables. Implements https://github.com/dotnet/corefx/issues/24281 CC xxx xxx Some interesting points: - The curl command ignores SSL_CERT_FILE when SSL_CERT_DIR is set. The underlying libcurl supports passing both to OpenSSL. - HTTPS proxy support requires a recent version of libcurl. The SSL config for the proxy is passed as separate options. 25220 area-Meta Generic Range type "Currently there is the non-generic `Range` type in the corefxlab repository ([link](https://github.com/dotnet/corefxlab/blob/2711e0824729fb318eb4e25544236bb2f53fa33e/src/System.Buffers.Experimental/System/Range.cs#L5-L20)) which is designed for a new C# slice syntax. As you can see, it's limited only to `int` values. ```csharp public readonly struct Range { public readonly long Index; public readonly long Length; } public readonly ref struct Span { public Span Slice(Range range) => Slice(range.Index, range.Length); public Span Slice(int index, int length) { throw null; } } ``` ```csharp var buffer = new Span(); var slice1 = buffer[3..4]; // with syntax sugar var slice2 = buffer.Slice(new Range(3, 4 - 3)); // without it ``` So it would be nice to have a generic one instead it to represent ranges of different types. ## Rationale and Usage Implementing the generic version would allow to have a common type to represent ranges. There are too many areas where it could be used including numeric processing, range based operations, and simply to store intervals (for example `Range