Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test - #103161

Merged
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket
Jun 12, 2024
Merged

Attempt to fix DuplicateAndClose_TcpServerHandler flaky test#103161
rokonec merged 6 commits into
dotnet:mainfrom
rokonec:dev/rokonec/dupandclose-socket

Conversation

@rokonec

@rokonecrokonec commented Jun 7, 2024

Copy link
Copy Markdown
Member

Context:
We have noticed failure of DuplicateAndClose_TcpServerHandler test in Job https://dev.azure.com/dnceng-public/public/_build/results?buildId=696224&view=logs&j=cb76e204-ba8f-557d-eba6-9896b4f24865

Changes made (changes are isolated into commits for easier review/revert):
Ensure RemoteInvokeHandle is disposed - this is ensuring that Dispose of RemoteInvokeHandle will be called during test run, otherwise it would be called in Finalize and as it throws, it would shutdown whole xunit runner.

Make RunCommonHostLogic synchronous - after discussion with original author we decide reverting RunCommonHostLogic back to synchronous execution for simplicity reasons.

Document RemoteInvokeHandle DisposeAsync intent.

Replace namedpipe IPC by Socket IPC - as there is theory that namedpipe implementatation is root cause of this flakiness, I have decided to rule it our by replacing it by simple Socket based IPC. IPC is required because remote code has to start before socket is disconnect, as socket disconnection requires process ID of the other process.

Testing:
locally by unit tests

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@rokonec

Copy link
Copy Markdown
MemberAuthor

Related failure log snapshot:

C:\h\w\BB30097A\w\B2DF096E\e>"C:\h\w\BB30097A\p\dotnet.exe" exec --runtimeconfig System.Net.Sockets.Tests.runtimeconfig.json --depsfile System.Net.Sockets.Tests.deps.json xunit.console.dll System.Net.Sockets.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing Discovering: System.Net.Sockets.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Sockets.Tests (found 1527 of 1819 test cases)
Starting: System.Net.Sockets.Tests (parallel test collections = on [2 threads], stop on fail = off)
System.Net.Sockets.Tests.KeepAliveTest.Socket_KeepAlive_RetryCount_Failure [SKIP]
Condition(s) not met: "IsWindowsBelow1703"
System.Net.Sockets.Tests.UnixDomainSocketTest.Socket_CreateUnixDomainSocket_Throws_OnWindows [SKIP]
Condition(s) not met: "IsSubWindows10"
Process terminated. System.Net.Sockets.Tests.SocketDuplicationTests+Synchronous.DuplicateAndClose_TcpServerHandler(addressFamily: InterNetworkV6, sameProcess: False) [FAIL]
System.Net.Sockets.SocketException : 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.
Stack Trace:
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1175,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer, SocketFlags socketFlags)
/_/src/libraries/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1170,0): at System.Net.Sockets.Socket.Send(ReadOnlySpan`1 buffer)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(348,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<>c__DisplayClass5_0.<<DuplicateAndClose_TcpServerHandler>g__RunCommonHostLogic|0>d.MoveNext()
--- End of stack trace from previous location ---
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(333,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
/_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs(335,0): at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.DuplicateAndClose_TcpServerHandler(AddressFamily addressFamily, Boolean sameProcess)
--- End of stack trace from previous location ---
UnhandledException
at System.Environment.FailFast(System.Runtime.CompilerServices.StackCrawlMarkHandle, System.String, System.Runtime.CompilerServices.ObjectHandleOnStack, System.String)
at System.Environment.FailFast(System.Threading.StackCrawlMark ByRef, System.String, System.Exception, System.String)
at System.Environment.FailFast(System.String)
at System.Runtime.EH.FallbackFailFast(System.Runtime.RhFailFastReason, System.Object)
at System.Runtime.EH.UnhandledExceptionFailFastViaClasslib(System.Runtime.RhFailFastReason, System.Object, IntPtr, ExInfo ByRef)
at System.Runtime.EH.DispatchEx(System.Runtime.StackFrameIterator ByRef, ExInfo ByRef)
at System.Runtime.EH.RhThrowEx(System.Object, ExInfo ByRef)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean)
at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Finalize()
Unhandled exception. Xunit.Sdk.EqualException: Assert.Equal() Failure: Strings differ
� (pos 0)
Expected: "test123!"
Actual: ""
at Xunit.Assert.Equal(ReadOnlySpan`1 expectedSpan, ReadOnlySpan`1 actualSpan, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/SpanAsserts.cs:line 658
at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences, Boolean ignoreAllWhiteSpace) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 333
at Xunit.Assert.Equal(String expected, String actual) in /_/src/Microsoft.DotNet.XUnitAssert/src/StringAsserts.cs:line 302
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 369
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
----- end Mon 06/03/2024 21:26:18.67 ----- exit code -2146232797 ----------------------------------------------------------
----- start =============== XUnitLogChecker Output =====================================================
C:\h\w\BB30097A\p\dotnet.exe --roll-forward Major C:\h\w\BB30097A\p\XUnitLogChecker.dll --dumps-path C:\cores
Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.Stream.ReadAtLeastCore(Span`1 buffer, Int32 minimumBytes, Boolean throwOnEndOfStream) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 906
at System.IO.BinaryReader.InternalRead(Span`1 buffer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 470
at System.IO.BinaryReader.ReadInt32() in /_/src/libraries/System.Private.CoreLib/src/System/IO/BinaryReader.cs:line 219
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.ReadSocketInfo(Stream stream) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 281
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 357
at System.Net.Sockets.Tests.SocketDuplicationTests.PolymorphicTests`1.<DuplicateAndClose_TcpServerHandler>g__HandlerServerCode|5_1(String ipcPipeName) in /_/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketDuplicationTests.cs:line 371
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 61
--- End of stack trace from previous location ---
at Microsoft.DotNet.RemoteExecutor.Program.Main(String[] args) in /_/src/Microsoft.DotNet.RemoteExecutor/src/Program.cs:line 97
[XUnitLogChecker]: 21:26:19.09: Only dumps checking will be done.

@wfurtwfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wfurt

wfurt commented Jun 7, 2024

Copy link
Copy Markdown
Member

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@rokonec

Copy link
Copy Markdown
MemberAuthor

/azp run

@azure-pipelines

Copy link
Copy Markdown
You have several pipelines (over 10) configured to build pull requests in this repository. Specify which pipelines you would like to run by using /azp run [pipelines] command. You can specify multiple pipelines using a comma separated list.

@rokonecrokonec closed this Jun 12, 2024
@rokonecrokonec reopened this Jun 12, 2024
@rokonec

Copy link
Copy Markdown
MemberAuthor

/ba-g After careful review I am quite sure failing tests are not related to changes of this PR

@rokonec
rokonec merged commit 85a70c4 into dotnet:mainJun 12, 2024
@karelzkarelz added this to the 9.0.0 milestone Jun 24, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Jul 25, 2024
@antonfirsovantonfirsov added the test-bug Problem in test source code (most likely) label Dec 12, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-System.Net.Socketstest-bugProblem in test source code (most likely)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@rokonec@wfurt@ManickaP@karelz@antonfirsov