Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/6.0] fix issue where HTTP2 connection could be scavenged but not disposed #62236

Merged
merged 1 commit into from
Jan 3, 2022

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Dec 1, 2021

Backport of #62225 to release/6.0

/cc @stephentoub @geoffkizer

Customer Impact

When scavenging connections, if we end up scavenging at least one HTTP/1.1 connection and at least one HTTP2 connection for the same connection pool (i.e. origin server), the first HTTP2 connection will be removed from the connection list but not disposed, leading to a connection leak.

Having both HTTP/1.1 and HTTP2 connections to the same server is not common, but if this happens the impact is pretty bad.

This is a regression in 6.0.

Testing

Customer provided with private binaries. They confirmed the change works and fixes the issue.

Risk

Very low -- trivial fix.

@ghost
Copy link

ghost commented Dec 1, 2021

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #62225 to release/6.0

/cc @stephentoub @geoffkizer

Customer Impact

Testing

Risk

Author: github-actions[bot]
Assignees: -
Labels:

area-System.Net.Http

Milestone: -

@geoffkizer geoffkizer added this to the 6.0.x milestone Dec 1, 2021
@karelz karelz added the Servicing-consider Issue for next servicing release review label Dec 10, 2021
@danmoseley
Copy link
Member

@karelz can you please handle tactics mail for this as Im going to be out.

@safern
Copy link
Member

safern commented Dec 15, 2021

I'll merge whenever this is approved by tactics.

@karelz karelz self-assigned this Dec 16, 2021
@leecow leecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Dec 16, 2021
@leecow leecow modified the milestones: 6.0.x, 6.0.2 Dec 16, 2021
@safern
Copy link
Member

safern commented Jan 3, 2022

/azp run runtime

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@safern
Copy link
Member

safern commented Jan 3, 2022

/azp run runtime-libraries enterprise-linux

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@karelz
Copy link
Member

karelz commented Jan 3, 2022

CI failures:

.packages\microsoft.dotnet.compatibility\1.0.0-rc.2.21511.46\build\Microsoft.NET.Compatibility.Common.targets(32,5): error MSB4018: (NETCORE_ENGINEERING_TELEMETRY=Build) The "Microsoft.DotNet.Compatibility.ValidatePackage" task failed unexpectedly.
System.TypeLoadException: Method 'CompareSourceLocations' in type 'Microsoft.CodeAnalysis.CSharp.CSharpCompilation' from assembly 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
   at Microsoft.DotNet.ApiCompatibility.AssemblySymbolLoader..ctor(Boolean resolveAssemblyReferences)
   at Microsoft.DotNet.PackageValidation.ApiCompatRunner.GetAssemblySymbolFromStream(Stream assemblyStream, MetadataInformation assemblyInformation, Boolean& resolvedReferences) in /_/src/Compatibility/Microsoft.DotNet.PackageValidation/ApiCompatRunner.cs:line 113
   at Microsoft.DotNet.PackageValidation.ApiCompatRunner.RunApiCompat() in /_/src/Compatibility/Microsoft.DotNet.PackageValidation/ApiCompatRunner.cs:line 50
   at Microsoft.DotNet.PackageValidation.CompatibleTfmValidator.Validate(Package package) in /_/src/Compatibility/Microsoft.DotNet.PackageValidation/CompatibleTFMValidator.cs:line 122
   at Microsoft.DotNet.Compatibility.ValidatePackage.ExecuteCore() in /_/src/Compatibility/Microsoft.DotNet.Compatibility/ValidatePackage.cs:line 91
   at Microsoft.NET.Build.Tasks.TaskBase.Execute() in /_/src/Tasks/Common/TaskBase.cs:line 38
   at Microsoft.DotNet.Compatibility.ValidatePackage.Execute() in /_/src/Compatibility/Microsoft.DotNet.Compatibility/ValidatePackage.cs:line 49
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask)
    System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamMultiPartMixed_MultipleFileStreams_Success [FAIL]
      Timed out
      Expected: True
      Actual:   False
      Stack Trace:
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(693,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement[] elements, SocketError expectedResult, Int32 bytesExpected, Byte[] contentExpected)
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(598,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamMultiPartMixed_MultipleFileStreams_Success()
    System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamLargeOffset_Throws [FAIL]
      Timed out
      Expected: True
      Actual:   False
      Stack Trace:
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(693,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement[] elements, SocketError expectedResult, Int32 bytesExpected, Byte[] contentExpected)
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(670,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement element, SocketError expectedResult, Int32 bytesExpected)
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(535,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamLargeOffset_Throws()
    System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamWithOptions_Success [FAIL]
      Timed out
      Expected: True
      Actual:   False
      Stack Trace:
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(693,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement[] elements, SocketError expectedResult, Int32 bytesExpected, Byte[] contentExpected)
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(665,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement element, Int32 bytesExpected, Byte[] contentExpected)
        /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs(555,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FileStreamWithOptions_Success()

@safern safern merged commit bdd6647 into release/6.0 Jan 3, 2022
@safern safern deleted the backport/pr-62225-to-release/6.0 branch January 3, 2022 16:32
@ghost ghost locked as resolved and limited conversation to collaborators Feb 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Net.Http Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants