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

[Windows arm] JIT/stress/ABI/tailcall_d / do tests are non-deterministically failing several times a day #70042

Closed
trylek opened this issue May 31, 2022 · 2 comments · Fixed by #70075
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@trylek
Copy link
Member

trylek commented May 31, 2022

OS: Windows
Architecture: arm[32]
Example run: https://dev.azure.com/dnceng/public/_build/results?buildId=1797398&view=ms.vss-test-web.build-test-results-tab&runId=47968846&resultId=100050&paneView=history

Diagnostics - please note the weird JIT assertion failure at the top even though the test starts running normally:

Assert failure(PID 4836 [0x000012e4], Thread: 14564 [0x38e4]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee9685(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 68; hash 0x3dc7e6f8; FullOpts)

File: D:\a\_work\1\s\src\coreclr\jit\morph.cpp Line: 3847
Image: D:\h\w\B9BF0A0C\p\corerun.exe
Return code:      1
Raw output file:      D:\h\w\B9BF0A0C\w\A8170972\uploads\Reports\JIT.Stress\ABI\tailcalls_d\tailcalls_d.output.txt
Raw output:
BEGIN EXECUTION
"D:\h\w\B9BF0A0C\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false"  tailcalls_d.dll --tailcalls --num-calls 1000 --no-ctrlc-summary
Stressing tailcalls
OSVersion: Microsoft Windows NT 10.0.19044.0
OSArchitecture: Arm64
ProcessArchitecture: Arm
Selecting win86 ABI
50 callers done (48 successful tailcalls tested)
100 callers done (99 successful tailcalls tested)
150 callers done (150 successful tailcalls tested)
200 callers done (199 successful tailcalls tested)
250 callers done (250 successful tailcalls tested)
300 callers done (296 successful tailcalls tested)
350 callers done (349 successful tailcalls tested)
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED

/cc @dotnet/jit-contrib

@ghost ghost added the untriaged New issue has not been triaged by the area owner label May 31, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 31, 2022
@ghost
Copy link

ghost commented May 31, 2022

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

Issue Details

OS: Windows
Architecture: arm[32]
Example run: https://dev.azure.com/dnceng/public/_build/results?buildId=1797398&view=ms.vss-test-web.build-test-results-tab&runId=47968846&resultId=100050&paneView=history

Diagnostics - please note the weird JIT assertion failure at the top even though the test starts running normally:

Assert failure(PID 4836 [0x000012e4], Thread: 14564 [0x38e4]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee9685(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 68; hash 0x3dc7e6f8; FullOpts)

File: D:\a\_work\1\s\src\coreclr\jit\morph.cpp Line: 3847
Image: D:\h\w\B9BF0A0C\p\corerun.exe
Return code:      1
Raw output file:      D:\h\w\B9BF0A0C\w\A8170972\uploads\Reports\JIT.Stress\ABI\tailcalls_d\tailcalls_d.output.txt
Raw output:
BEGIN EXECUTION
"D:\h\w\B9BF0A0C\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false"  tailcalls_d.dll --tailcalls --num-calls 1000 --no-ctrlc-summary
Stressing tailcalls
OSVersion: Microsoft Windows NT 10.0.19044.0
OSArchitecture: Arm64
ProcessArchitecture: Arm
Selecting win86 ABI
50 callers done (48 successful tailcalls tested)
100 callers done (99 successful tailcalls tested)
150 callers done (150 successful tailcalls tested)
200 callers done (199 successful tailcalls tested)
250 callers done (250 successful tailcalls tested)
300 callers done (296 successful tailcalls tested)
350 callers done (349 successful tailcalls tested)
Expected: 100
Actual: -1073740286
END EXECUTION - FAILED
FAILED

/cc @dotnet/jit-contrib

Author: trylek
Assignees: -
Labels:

area-CodeGen-coreclr, untriaged

Milestone: -

@jakobbotsch
Copy link
Member

Underlying problem is #61168, cc @kunalspathak

Note #68837 which is the follow-up to #67917 that disabled these tests, but presumably they were only disabled on linux-arm32.

@JulieLeeMSFT JulieLeeMSFT removed the untriaged New issue has not been triaged by the area owner label May 31, 2022
@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone May 31, 2022
jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Jun 1, 2022
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jun 1, 2022
jakobbotsch added a commit that referenced this issue Jun 7, 2022
* JIT ARM32: Fix odd sized structs from arbitrary sources

ARM32 ABI allows passing structs in register even when their sizes are
not divisible by 4. This means we sometimes need to pass 3 bytes in the
last register. The JIT would not handle this when the source was an
arbitrary memory location (this would require multiple loads and
shifts). The fix is to just force a copy into the local stack frame for
this case.

Fix #61168

* Reenable ABI tests

Fix #68837
Fix #70042
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jun 7, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Jul 7, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants