dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.96k stars 4.65k forks source link

timeout running RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: NonBacktracking) #70674

Open danmoseley opened 2 years ago

danmoseley commented 2 years ago

On my i7-10th gen laptop. This was running all tests in the tree, so other test libraries would be executing in parallel.

Branch was at 27195f670937c7e21ab68a806396f9d17c57231a

     <test name="System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: NonBacktracking)" type="System.Text.RegularExpressions.Tests.RegexMatchTests" method="Match_VaryingLengthStrings_Huge" time="400.1843643" result="Fail">
        <traits>
          <trait name="category" value="outerloop" />
        </traits>
        <failure exception-type="Xunit.Sdk.XunitException">
          <message><![CDATA[Half-way through waiting for remote process.\r\nMemory load: 73\r\n\r\nImage Name                     PID Services                                    \r\n========================= ======== ============================================\r\nsvchost.exe                   1396 BrokerInfrastructure, DcomLaunch, PlugPlay, \r\n                                   Power, SystemEventsBroker                   \r\nsvchost.exe                   1532 RpcEptMapper, RpcSs                         ...                                 \r\n
            Timed out at 6/12/2022 1:02:39 AM after 60000ms waiting for remote process.\r\n\tProcess ID: 104404\r\n\tHandle: 2880\r\n\tName: dotnet\r\n\tMainModule: C:\\git\\runtime\\artifacts\\bin\\testhost\\net7.0-windows-Debug-x64\\dotnet.exe\r\n\tStartTime: 6/12/2022 1:01:24 AM\r\n\tTotalProcessorTime: 00:00:48.3593750\r\n\tThreads:\r\n\t\tThread #1 (OS 0xF834)   [MTA]\r\n\t\t\t[HelperMethodFrame_1OBJ] (System.Threading.Monitor.ObjWait)\r\n\t\t\tSystem.Threading.Monitor.Wait(System.Object, Int32)\r\n\t\t\tSystem.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)\r\n\t\t\tSystem.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)\r\n\t\t\tSystem.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)\r\n\t\t\tSystem.Threading.Tasks.Task.InternalWait(Int32, System.Threading.CancellationToken)\r\n\t\t\tSystem.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)\r\n\t\t\tSystem.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task)\r\n\t\t\tSystem.Runtime.CompilerServices.TaskAwaiter`1[[System.Int32, System.Private.CoreLib]].GetResult()\r\n\t\t\tSystem.Threading.StackHelper.CallOnEmptyStack[[System.Int32, System.Private.CoreLib]](System.Func`1<Int32>)\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, 

            ...

            System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n]]></message>
          <stack-trace><![CDATA[   at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose(Boolean disposing) in /_/src/Microsoft.DotNet.RemoteExecutor/src/RemoteInvokeHandle.cs:line 224
   at Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle.Dispose() in /_/src/Microsoft.DotNet.RemoteExecutor/src/RemoteInvokeHandle.cs:line 57
   at System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(RegexEngine engine) in C:\git\runtime\src\libraries\System.Text.RegularExpressions\tests\FunctionalTests\Regex.Match.Tests.cs:line 1055
--- End of stack trace from previous location ---]]></stack-trace>
        </failure>
      </test>
ghost commented 2 years ago

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

Issue Details
On my i7-10th gen laptop. This was running all tests in the tree, so other test libraries would be executing in parallel. Branch was at 27195f670937c7e21ab68a806396f9d17c57231a ``` )\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, ... System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n\t\t\tSystem.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.__Canon, System.Private.CoreLib]].CountSingletons()\r\n]]> ```
Author: danmoseley
Assignees: -
Labels: `area-System.Text.RegularExpressions`, `untriaged`
Milestone: -
stephentoub commented 2 years ago

cc: @veanes

danmoseley commented 2 years ago

As a datapoint, I just now ran the test on the same machine but alone, and got these times

      <test name="System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: Interpreter)" type="System.Text.RegularExpressions.Tests.RegexMatchTests" method="Match_VaryingLengthStrings_Huge" time="0.0614033" result="Pass">
      <test name="System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: Compiled)" type="System.Text.RegularExpressions.Tests.RegexMatchTests" method="Match_VaryingLengthStrings_Huge" time="0.0548128" result="Pass">
      <test name="System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: NonBacktracking)" type="System.Text.RegularExpressions.Tests.RegexMatchTests" method="Match_VaryingLengthStrings_Huge" time="9.9688913" result="Pass">
      <test name="System.Text.RegularExpressions.Tests.RegexMatchTests.Match_VaryingLengthStrings_Huge(engine: SourceGenerated)" type="System.Text.RegularExpressions.Tests.RegexMatchTests" method="Match_VaryingLengthStrings_Huge" time="3.1690631" result="Pass">

In the above case it timed out at 60 sec. Still can't say whether it's an actual hang vs concurrent tests monopolizing the machine.

joperezr commented 2 years ago

Interesting. Did you only see issues with this particular test and this particular test assembly or other test assemblies as well? I ask because I'm not sure if the issue is more around the way we are executing different library tests in parallel.