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

Test failure baseservices/exceptions/stackoverflow/stackoverflowtester/stackoverflowtester.cmd #108215

Closed
JulieLeeMSFT opened this issue Sep 24, 2024 · 6 comments · Fixed by #108873
Assignees
Labels
arch-arm64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs in-pr There is an active PR which will close this issue when it is merged os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX Priority:3 Work that is nice to have
Milestone

Comments

@JulieLeeMSFT
Copy link
Member

JulieLeeMSFT commented Sep 24, 2024

Pipeline: runtime-coreclr superpmi-collect/20240922.1

Failed test:

coreclr linux arm64 Checked no_tiered_compilation @ (Ubuntu.2004.Arm64)[email protected]/dotnet-buildtools/prereqs:ubuntu-20.04-helix-arm64v8
- baseservices/exceptions/stackoverflow/stackoverflowtester/stackoverflowtester.cmd

Error Message:

Return code:      1
Raw output file:      /root/helix/work/workitem/uploads/stackoverflow/stackoverflowtester/output.txt
Raw output:
BEGIN EXECUTION
/root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false -p System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true stackoverflowtester.dll ''
Running stackoverflow test(smallframe main)
"Stack overflow."
"Repeated 174487 times:"
"--------------------------------"
"   at TestStackOverflow.Program.InfiniteRecursionC()"
"   at TestStackOverflow.Program.InfiniteRecursionB()"
"   at TestStackOverflow.Program.InfiniteRecursionA()"
"--------------------------------"
"   at TestStackOverflow.Program.Test(Boolean)"
"   at TestStackOverflow.Program.Main(System.String[])"
""
Running stackoverflow test(smallframe secondary)
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Stack overflow."
"Repeated 174616 times:"
"--------------------------------"
"   at TestStackOverflow.Program.InfiniteRecursionC()Stack overflow."
""
"   at TestStackOverflow.Program.InfiniteRecursionB()"
"   at TestStackOverflow.Program.InfiniteRecursionA()"
"--------------------------------"
"   at TestStackOverflow.Program.Test(Boolean)"
"   at TestStackOverflow.Program+<>c__DisplayClass7_0.<SecondaryThreadsTest>b__0()"
""
System.Exception: Missing "InfiniteRecursionC" method frame
at TestStackOverflow.Program.TestStackOverflowSmallFrameSecondaryThread()
at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
Test failed. Trying to see if dump file was created in /home/helixbot/dotnetbuild/dumps since 9/22/2024 8:16:04 PM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.



/root/helix/work/workitem/e/baseservices/exceptions/baseservices-exceptions/../stackoverflow/stackoverflowtester/stackoverflowtester.sh

Stack trace:

[at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 146](https://dev.azure.com/dnceng/internal/_git/a2f9a77f-0d37-4eaf-aecc-5b3ff7457ad6?path=%2F_%2Fsrc%2FMicrosoft.DotNet.XUnitAssert%2Fsrc%2FBooleanAsserts.cs&version=GBmain&_a=contents&line=146&lineEnd=147&lineStartColumn=1&lineEndColumn=1&lineStyle=plain)
at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
at Program.<<Main>$>g__TestExecutor134|0_135(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Sep 24, 2024
@JulieLeeMSFT JulieLeeMSFT added the blocking-clean-ci-optional Blocking optional rolling runs label Sep 24, 2024
@JulieLeeMSFT
Copy link
Member Author

@janvorli PTAL.
cc @dotnet/jit-contrib.

@JulieLeeMSFT JulieLeeMSFT added arch-arm64 os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX labels Sep 24, 2024
@JulieLeeMSFT
Copy link
Member Author

Related to #106742.

@markples
Copy link
Member

This appears to be different form #106742.

The output

"Repeated 174616 times:"
"--------------------------------"
"   at TestStackOverflow.Program.InfiniteRecursionC()Stack overflow."
""
"   at TestStackOverflow.Program.InfiniteRecursionB()"
"   at TestStackOverflow.Program.InfiniteRecursionA()"
"--------------------------------"
"   at TestStackOverflow.Program.Test(Boolean)"
"   at TestStackOverflow.Program+<>c__DisplayClass7_0.<SecondaryThreadsTest>b__0()"
""
System.Exception: Missing "InfiniteRecursionC" method frame

has an InfiniteRecursionC frame, but the check is

if (!lines.Exists(elem => elem.EndsWith("at TestStackOverflow.Program.InfiniteRecursionC()

so I think the question is whether the output interleaving is allowed and then either the output or the test should be fixed.

@janvorli
Copy link
Member

The interleaving occurs only with superpmi due to its hooking into the sigsegv handler and the possibility that we hit it without the current thread being registered with the superpmi's PAL. I think that it would actually be better to not to run this test with superpmi at all.

@JulieLeeMSFT
Copy link
Member Author

The interleaving occurs only with superpmi due to its hooking into the sigsegv handler and the possibility that we hit it without the current thread being registered with the superpmi's PAL. I think that it would actually be better to not to run this test with superpmi at all.

@BruceForstall, can you plz remove this test from spmi?

@JulieLeeMSFT JulieLeeMSFT removed the untriaged New issue has not been triaged by the area owner label Sep 27, 2024
@JulieLeeMSFT JulieLeeMSFT added this to the 10.0.0 milestone Sep 27, 2024
@JulieLeeMSFT JulieLeeMSFT added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-ExceptionHandling-coreclr labels Sep 27, 2024
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@JulieLeeMSFT JulieLeeMSFT added the Priority:3 Work that is nice to have label Sep 30, 2024
BruceForstall added a commit to BruceForstall/runtime that referenced this issue Oct 15, 2024
It should be _extremely_ rare to need to disable a test during SuperPMI
collection. However, one case was found, so introduce the ability to do so.

Use `<SuperPmiCollectIncompatible>true</SuperPmiCollectIncompatible>` in
a test project file.

(which also requires `<RequiresProcessIsolation>true</RequiresProcessIsolation>`)

Fixes dotnet#108215
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Oct 15, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Nov 15, 2024
mikelle-rogers pushed a commit to mikelle-rogers/runtime that referenced this issue Dec 10, 2024
…otnet#108873)

It should be _extremely_ rare to need to disable a test during SuperPMI
collection. However, one case was found, so introduce the ability to do so.

Use `<SuperPmiCollectIncompatible>true</SuperPmiCollectIncompatible>` in
a test project file.

(which also requires `<RequiresProcessIsolation>true</RequiresProcessIsolation>`)

Fixes dotnet#108215
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci-optional Blocking optional rolling runs in-pr There is an active PR which will close this issue when it is merged os-linux Linux OS (any supported distro) os-mac-os-x macOS aka OSX Priority:3 Work that is nice to have
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants