Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[browser] Run tests in parallel #98492

Merged
merged 21 commits into from
Apr 4, 2024
Merged

Conversation

maraf
Copy link
Member

@maraf maraf commented Feb 15, 2024

@maraf maraf self-assigned this Feb 15, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Feb 15, 2024
@maraf maraf added arch-wasm WebAssembly architecture area-Build-mono os-browser Browser variant of arch-wasm and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Feb 15, 2024
@ghost
Copy link

ghost commented Feb 15, 2024

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author: maraf
Assignees: maraf
Labels:

arch-wasm, area-Build-mono, os-browser

Milestone: -

@maraf

This comment was marked as resolved.

@pavelsavara

This comment was marked as resolved.

@maraf
Copy link
Member Author

maraf commented Feb 22, 2024

/azp run runtime

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@maraf
Copy link
Member Author

maraf commented Feb 23, 2024

[13:25:08] info: [STRT][9] System.Runtime.InteropServices.JavaScript.Tests.JSExportTest.JsExportNullableDouble(value: 3.1415926535897931)
[13:25:08] info: [FAIL][11] System.Runtime.InteropServices.JavaScript.Tests.JSExportAsyncTest.JsExportInt32DiscardNoWait(value: 42)
[13:25:08] info: System.PlatformNotSupportedException : Cannot call synchronous JS function from inside a synchronous call to a C# method.
[13:25:08] info:    at System.Runtime.InteropServices.JavaScript.Tests.JavaScriptTestHelper.invoke1O(Int32 a1)
[13:25:08] info:    at System.Runtime.InteropServices.JavaScript.Tests.JSExportAsyncTest.JsExportInt32DiscardNoWait(Int32 value)
[13:25:08] info: --- End of stack trace from previous location ---
[13:25:12] info: [FAIL][9] System.Runtime.InteropServices.JavaScript.Tests.JSImportTest.JsImportObjectArrayTask
[13:25:12] info: Assert.True() Failure
[13:25:12] info: Expected: True
[13:25:12] info: Actual:   False
[13:25:12] info:    at System.Runtime.InteropServices.JavaScript.Tests.JSImportTest.JsImportObjectArrayTask()
[13:25:12] info: --- End of stack trace from previous location ---
...
[13:25:12] info: [STRT][14] System.Runtime.InteropServices.JavaScript.Tests.WebWorkerTest.JSDelay_Cancellation(executor: NewThread)
[13:25:12] info: HttpClient_CancelInDifferentThread: TaskCanceledException is thrown with message: System.Threading.Tasks.TaskCanceledException: The operation was canceled.
[13:25:12] info:  ---> Error: OperationCanceledException
[13:25:12] info:    --- End of inner exception stack trace ---
[13:25:12] info:    at System.Net.Http.CancellationHelper.ThrowOperationCanceledException(Exception , CancellationToken )
[13:25:12] info:    at System.Net.Http.CancellationHelper.ThrowIfCancellationRequested(Exception , CancellationToken )
[13:25:12] info:    at System.Net.Http.BrowserHttpInterop.CancellationHelper(Task , CancellationToken , JSObject )
[13:25:12] info:    at System.Net.Http.BrowserHttpInterop.<CancellationHelper>d__22`1[[System.Int32, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
[13:25:12] info:    at System.Net.Http.BrowserHttpReadStream.ReadAsync(Memory`1 , CancellationToken )
[13:25:12] info:    at System.IO.Stream.<CopyToAsync>g__Core|27_0(Stream , Stream , Int32 , CancellationToken )
[13:25:12] info:    at System.Net.Http.StreamToStreamCopy.<CopyAsync>g__DisposeSourceAsync|1_0(Task , Stream )
[13:25:12] info:    at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task , MemoryStream )
[13:25:12] info:    at System.Net.Http.HttpContent.<WaitAndReturnAsync>d__82`2[[System.Net.Http.HttpContent, System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.String, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
[13:25:12] info:    at System.Runtime.InteropServices.JavaScript.Tests.WebWorkerHttpTest.<>c__DisplayClass7_0.<<HttpClient_CancelInDifferentThread>b__1>d.MoveNext()
...
[13:25:12] info: [STRT][9] System.Runtime.InteropServices.JavaScript.Tests.WebWorkerTest.JSDelay_Cancellation(executor: JSWebWorker)
[13:25:12] info: HttpClient_CancelInDifferentThread: TaskCanceledException is thrown with message: System.Threading.Tasks.TaskCanceledException: The operation was canceled.
[13:25:12] info:  ---> Error: OperationCanceledException
[13:25:12] info:    --- End of inner exception stack trace ---
[13:25:12] info:    at System.Net.Http.CancellationHelper.ThrowOperationCanceledException(Exception , CancellationToken )
[13:25:12] info:    at System.Net.Http.CancellationHelper.ThrowIfCancellationRequested(Exception , CancellationToken )
[13:25:12] info:    at System.Net.Http.BrowserHttpInterop.CancellationHelper(Task , CancellationToken , JSObject )
[13:25:12] info:    at System.Net.Http.BrowserHttpInterop.<CancellationHelper>d__22`1[[System.Int32, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
[13:25:12] info:    at System.Net.Http.BrowserHttpReadStream.ReadAsync(Memory`1 , CancellationToken )
[13:25:12] info:    at System.IO.Stream.<CopyToAsync>g__Core|27_0(Stream , Stream , Int32 , CancellationToken )
[13:25:12] info:    at System.Net.Http.StreamToStreamCopy.<CopyAsync>g__DisposeSourceAsync|1_0(Task , Stream )
[13:25:12] info:    at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task , MemoryStream )
[13:25:12] info:    at System.Net.Http.HttpContent.<WaitAndReturnAsync>d__82`2[[System.Net.Http.HttpContent, System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.String, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
[13:25:12] info:    at System.Runtime.InteropServices.JavaScript.Tests.WebWorkerHttpTest.<>c__DisplayClass7_0.<<HttpClient_CancelInDifferentThread>b__1>d.MoveNext()
[13:25:12] info: [0x05e30040-jsww 13:25:12.620] MONO_WASM: forceDisposeProxies done: 2 imports, 0 exports, 1 GCHandles, 0 JSHandles.
[13:55:05] fail: Tests timed out. Killing driver service pid 79
[13:55:05] fail: Application has finished with exit code TIMED_OUT but 0 was expected

@pavelsavara

This comment was marked as outdated.

@maraf
Copy link
Member Author

maraf commented Feb 27, 2024

[10:56:10] info: [PASS][16] System.Collections.Tests.DebugView_Tests.TestDebuggerAttributes_Null
[10:56:15] info: STATE CUE CARD: (? means a positive number, usually 1 or 2, * means any number)
[10:56:15] info: 	0x0	- starting (GOOD, unless the thread is running managed code)
[10:56:15] info: 	0x1	- detached (GOOD, unless the thread is running managed code)
[10:56:15] info: 	0x2	- running (BAD, unless it's the gc thread)
[10:56:15] info: 	0x?03	- async suspended (GOOD)
[10:56:15] info: 	0x?04	- self suspended (GOOD)
[10:56:15] info: 	0x?05	- async suspend requested (BAD)
[10:56:15] info: 	0x6	- blocking (BAD, unless there's no suspend initiator)
[10:56:15] info: 	0x?07	- blocking async suspended (GOOD)
[10:56:15] info: 	0x?08	- blocking self suspended (GOOD)
[10:56:15] info: 	0x?09	- blocking suspend requested (GOOD in coop; BAD in hybrid)
[10:56:15] info: --thread 0x34ab0e0 id 0xdc96c [0] state 109
[10:56:15] info: --thread 0x200a658 id 0x1b014d8 [0] state 109
[10:56:15] info: --thread 0x3619de0 id 0x361df78 [0] state 109
[10:56:15] info: --thread 0x3617878 id 0x392d638 [0] state 108
[10:56:15] info: --thread 0x3c76b00 id 0x3c93d18 [0] state 108
[10:56:15] info: --thread 0x41fddd8 id 0x47102f0 [0] state 109
[10:56:15] info: --thread 0x429e940 id 0x5030030 [0] state 109
[10:56:15] info: --thread 0x428a9e0 id 0x52302e0 [0] state 108
[10:56:15] info: --thread 0x42af450 id 0x5540040 [0] state 109
[10:56:15] info: --thread 0x43b35a8 id 0x57402f0 [0] state 105
[10:56:15] info: --thread 0x543d1c0 id 0x5b60040 [0] state 109
[10:56:15] info: --thread 0x594e5c0 id 0x5d602f0 [0] state 104
[10:56:15] info: --thread 0x594f420 id 0x6070040 [0] state 109
[10:56:15] info: --thread 0x594fb70 id 0x6380040 [0] state 2  GC INITIATOR
[10:56:15] info: --thread 0x7d59458 id 0x690fbe8 [0] state 109
[10:56:15] info: --thread 0x72e6680 id 0x7520040 [0] state 109
[10:56:15] info: --thread 0x6ef9080 id 0x7a40030 [0] state 109
[10:56:15] info: --thread 0x747ff98 id 0x8eb0040 [0] state 109
[10:56:15] info: WAITING for 2 threads, got 1 suspended
[10:56:15] fail: [0x06380040-long 10:56:15.895] [MONO] /__w/1/s/src/mono/mono/utils/mono-threads.c:330 <disabled>
[10:56:35] info: [STRT][13] System.Runtime.InteropServices.JavaScript.Tests.WebWorkerTest.WaitAssertsOnJSInteropThreads(executor: Main, method: ManualResetEventSlim.Wait)
[11:26:29] fail: Tests timed out. Killing driver service pid 79
[10:56:37] info: [PASS][12] System.Runtime.InteropServices.JavaScript.Tests.WebWorkerTest.JSDelay_ContinueWith
[11:26:32] fail: Tests timed out. Killing driver service pid 81
[11:26:32] fail: Application has finished with exit code TIMED_OUT but 0 was expected

@pavelsavara pavelsavara self-assigned this Apr 3, 2024
@@ -5,6 +5,9 @@
<IncludeRemoteExecutor>true</IncludeRemoteExecutor>
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetOS)' == 'browser'">
<WasmXHarnessMaxParallelThreads>1</WasmXHarnessMaxParallelThreads>
Copy link
Member

Choose a reason for hiding this comment

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

What was the problem with buffers ?

Copy link
Member Author

Choose a reason for hiding this comment

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

OOM killed (from PR description)

[FAIL][8] System.Buffers.ArrayPool.Tests.ArrayPoolUnitTests.RentingSpecificLengthsYieldsExpectedLengths(requestedMinimum: 2097152, expectedLength: 2097152)
info: System.OutOfMemoryException : Out of memory
info:    at System.Buffers.ConfigurableArrayPool`1[[System.String, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Rent(Int32 minimumLength)
info:    at System.Buffers.ArrayPool.Tests.ArrayPoolUnitTests.RentingSpecificLengthsYieldsExpectedLengths(Int32 requestedMinimum, Int32 expectedLength)
info:    at System.Object.InvokeStub_ArrayPoolUnitTests.RentingSpecificLengthsYieldsExpectedLengths(Object , Span`1 )
info:    at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

Copy link
Member Author

Choose a reason for hiding this comment

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

We can re-parallelize them if you want to see the whole log

Copy link
Member

Choose a reason for hiding this comment

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

It seems that GC is unable to keep up with the traffic. Let's create issue for that.

I wonder if Mono on x64 has the same problem but survives this because of more available memory ?

Copy link
Member Author

Choose a reason for hiding this comment

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

Opened #100628

@pavelsavara
Copy link
Member

/ba-g the failure is #95805

@pavelsavara
Copy link
Member

The other failure is #98964

@pavelsavara pavelsavara merged commit d96f224 into dotnet:main Apr 4, 2024
94 of 97 checks passed
@maraf maraf deleted the BrowserTestsParallelRun branch April 4, 2024 12:52
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Pavel Savara <pavel.savara@gmail.com>
@github-actions github-actions bot locked and limited conversation to collaborators May 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-Build-mono os-browser Browser variant of arch-wasm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants