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 : JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh #48892

Closed
VincentBu opened this issue Mar 1, 2021 · 10 comments · Fixed by #50890
Closed

Test failure : JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh #48892

VincentBu opened this issue Mar 1, 2021 · 10 comments · Fixed by #50890
Assignees
Labels
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI in-pr There is an active PR which will close this issue when it is merged JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro) Priority:0 Work that we can't release without
Milestone

Comments

@VincentBu
Copy link

Run: runtime-coreclr jitstress2-jitstressregs 20210228.1

Failed test:

CoreCLR Linux arm Checked jitstress2_jitstressregs3 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
 
-JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh

Error message:

/root/helix/work/workitem/JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh: line 388: 1648 Segmentation fault (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"

Return code: 1
Raw output file: /root/helix/work/workitem/JIT/Methodical/Reports/JIT.Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.output.txt
Raw output:
BEGIN EXECUTION
/root/helix/work/correlation/corerun 10w5d_cs_ro.dll ''
Func_0_6_5_6_3: != true
Func_0_6_5_4_6: <= true
Func_0_6_5_4_5: > true
Func_0_6_5_4_3: == false
Func_0_6_4_6_2: != true
Func_0_6_4_5_4: < true
Func_0_6_4_5_1: < true
Func_0_6_4_4: <= true
Func_0_6_3_6_5: == false
Func_0_6_3_4_4: <= true
Func_0_6_3_4_3: < true
Func_0_6_3_3: < true
Func_0_6_3_2_3: >= true
Func_0_6_3_1_5: < true
Func_0_6_3_1: <= false
Func_0_6_3: != true
Func_0_6_2_5: != true
Func_0_6_2_1: > false
Func_0_6_1_6_4: < false
Func_0_6_1_6_3: > false
Func_0_6_1_5_4: > true
Func_0_6_1_3: == false
Func_0_5_6_6_6: <= true
Func_0_5_6_6_1: > true
Func_0_5_6_4_6: <= false
Func_0_5_6_4_2: >= false
Func_0_5_6_3_6: < false
Func_0_5_6_3_1: == false
Func_0_5_6_3: <= true
Func_0_5_6_2_1: >= false
Func_0_5_6_1_3: > true
Func_0_5_6_1: <= false
Func_0_5_5_6: != true
Func_0_5_5_5_6: != true
Func_0_5_5_5_4: == false
Func_0_5_5_5_2: == false
Func_0_5_5_4_5: < true
Func_0_5_5_4: > true
Func_0_5_5_3_4: != true
Func_0_5_5_3_2: <= true
Func_0_5_5_3_1: > true
Func_0_5_5_1: < false
Func_0_5_4_5: >= false
Func_0_5_4_1_3: <= false
Func_0_5_4_1_2: == false
Func_0_5_4: != true
Func_0_5_3_6: != true
Func_0_5_3_5_3: < true
Func_0_5_3_4_2: == false
Func_0_5_3_4_1: >= true
Func_0_5_3_4: <= true
Func_0_5_3_1_2: < true
Func_0_5_3: >= false
Func_0_5_2_6_6: != true
Func_0_5_2_6_3: != true
Func_0_5_2_5_6: != true
Func_0_5_2_5_4: == false
Func_0_5_2_5_3: <= true
Func_0_5_2_5_2: != true
Func_0_5_2_4_5: > false
Func_0_5_2_4_2: <= true
Func_0_5_2_2_5: > true
Func_0_5_2_1_6: > false
Func_0_5_2_1_1: != true
Func_0_5_1: != true
Func_0_4_6_6_5: <= true
Func_0_4_6_6: == false
Func_0_4_6_5_6: <= true
Func_0_4_6_5_5: != true
Func_0_4_6_5_2: <= true
Func_0_4_6_5: == false
Func_0_4_6_3_6: >= true
Func_0_4_6_3_3: == false
Func_0_4_6_3_2: <= false
Func_0_4_6_2: == false
Func_0_4_5_6: >= false
Func_0_4_5_5: < true
Func_0_4_5_3_5: == false
Func_0_4_5_2_6: > false
Func_0_4_5_2_4: >= true
Func_0_4_5_2_1: <= false
Func_0_4_5_2: >= true
Func_0_4_5_1_5: == false
Func_0_4_5_1_2: > true
Func_0_4_4_5: != true
Func_0_4_4_2_6: < true
Func_0_4_4_2_5: != false
Func_0_4_4_2_3: <= true
Func_0_4_4_2: == false
Func_0_4_4_1_4: >= false
Func_0_4_3_6_6: <= true
Func_0_4_3_6_5: <= true
Func_0_4_3_6_2: >= true
Func_0_4_3_6_1: == true
Func_0_4_3_4: >= true
Func_0_4_3_2_2: == false
Func_0_4_3_1_3: > true
Func_0_4_3_1_1: != true
Func_0_4_2_5_4: <= true
Func_0_4_2_5_1: != true
Func_0_4_1_4: >= true
Func_0_4_1_3_1: >= true
Func_0_4_1_2_3: < false
Func_0_4_1_1_1: >= true
Func_0_3_6_6_5: >= true
Func_0_3_6_6_1: < true
Func_0_3_6_5_5: > false
Func_0_3_6_4_1: < false
Func_0_3_6_3_4: != true
Func_0_3_5_6_6: == true
Func_0_3_5_6_5: <= true
Func_0_3_5_6_2: != true
Func_0_3_5_4: == false
Func_0_3_5_3: > false
Func_0_3_5_2_6: != true
Func_0_3_5_2_5: <= true
Func_0_3_5_2_4: > false
Func_0_3_5_2_2: == false
Func_0_3_5_1_1: != true
Func_0_3_4_1_1: < true
Func_0_3_4_1: < true
Func_0_3_3_6_4: <= false
Func_0_3_3_6_1: <= true
Func_0_3_3_5_6: != true
Func_0_3_3_5_1: != true
Func_0_3_3_4_6: <= true
Func_0_3_3_4_5: <= true
Func_0_3_3_4_2: < true
Func_0_3_2_6_6: <= true
Func_0_3_2_6_3: >= false
Func_0_3_2_6_1: >= true
Func_0_3_2_5_6: < true
Func_0_3_2_5_3: >= true
Func_0_3_2_5_1: > true
Func_0_3_2_4_3: > true
Func_0_3_2_3_3: > true
Func_0_3_2_3_2: <= false
Func_0_3_2_1_5: != true
Func_0_3_1_6_6: > true
Func_0_3_1_6_4: >= false
Func_0_3_1_4_4: <= true
Func_0_3_1_4_3: == true
Func_0_3_1_4_2: == false
Func_0_3_1_4_1: <= true
Func_0_3_1_3_5: == false
Func_0

Stack trace
   at JIT_Methodical._fp_exgen_10w5d_cs_ro_10w5d_cs_ro_._fp_exgen_10w5d_cs_ro_10w5d_cs_ro_sh()

@VincentBu VincentBu added arch-arm32 os-linux Linux OS (any supported distro) JitStress CLR JIT issues involving JIT internal stress modes labels Mar 1, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI untriaged New issue has not been triaged by the area owner labels Mar 1, 2021
@BruceForstall BruceForstall added this to the 6.0.0 milestone Mar 1, 2021
@BruceForstall BruceForstall removed the untriaged New issue has not been triaged by the area owner label Mar 1, 2021
@BruceForstall
Copy link
Member

@dotnet/jit-contrib related to #44419?

@JulieLeeMSFT
Copy link
Member

@briansull PTAL

@JulieLeeMSFT JulieLeeMSFT added this to Needs Triage in .NET Core CodeGen via automation Mar 11, 2021
@JulieLeeMSFT JulieLeeMSFT moved this from Needs Triage to P1 in .NET Core CodeGen Mar 11, 2021
@BruceForstall
Copy link
Member

This is failing every day for Linux arm32 (jitstress=2, jitstressregs=3). @briansull Could you please disable this test for Linux arm32 until it can be investigated?

@BruceForstall
Copy link
Member

@briansull ping

@VincentBu
Copy link
Author

Failed again in runtime-coreclr jitstress2-jitstressregs 20210321.1

Failed test:

CoreCLR Linux arm Checked jitstress2_jitstressregs3 @ (Ubuntu.1804.Arm32.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440
 -JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh

Error message:

/root/helix/work/workitem/JIT/Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.sh: line 375: 2861 Segmentation fault (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"

Return code: 1
Raw output file: /root/helix/work/workitem/JIT/Methodical/Reports/JIT.Methodical/fp/exgen/10w5d_cs_ro/10w5d_cs_ro.output.txt
Raw output:
BEGIN EXECUTION
/root/helix/work/correlation/corerun 10w5d_cs_ro.dll ''
Func_0_6_5_6_3: != true
Func_0_6_5_4_6: <= true
Func_0_6_5_4_5: > true
Func_0_6_5_4_3: == false
Func_0_6_4_6_2: != true
Func_0_6_4_5_4: < true
Func_0_6_4_5_1: < true
Func_0_6_4_4: <= true
Func_0_6_3_6_5: == false
Func_0_6_3_4_4: <= true
Func_0_6_3_4_3: < true
Func_0_6_3_3: < true
Func_0_6_3_2_3: >= true
Func_0_6_3_1_5: < true
Func_0_6_3_1: <= false
Func_0_6_3: != true
Func_0_6_2_5: != true
Func_0_6_2_1: > false
Func_0_6_1_6_4: < false
Func_0_6_1_6_3: > false
Func_0_6_1_5_4: > true
Func_0_6_1_3: == false
Func_0_5_6_6_6: <= true
Func_0_5_6_6_1: > true
Func_0_5_6_4_6: <= false
Func_0_5_6_4_2: >= false
Func_0_5_6_3_6: < false
Func_0_5_6_3_1: == false
Func_0_5_6_3: <= true
Func_0_5_6_2_1: >= false
Func_0_5_6_1_3: > true
Func_0_5_6_1: <= false
Func_0_5_5_6: != true
Func_0_5_5_5_6: != true
Func_0_5_5_5_4: == false
Func_0_5_5_5_2: == false
Func_0_5_5_4_5: < true
Func_0_5_5_4: > true
Func_0_5_5_3_4: != true
Func_0_5_5_3_2: <= true
Func_0_5_5_3_1: > true
Func_0_5_5_1: < false
Func_0_5_4_5: >= false
Func_0_5_4_1_3: <= false
Func_0_5_4_1_2: == false
Func_0_5_4: != true
Func_0_5_3_6: != true
Func_0_5_3_5_3: < true
Func_0_5_3_4_2: == false
Func_0_5_3_4_1: >= true
Func_0_5_3_4: <= true
Func_0_5_3_1_2: < true
Func_0_5_3: >= false
Func_0_5_2_6_6: != true
Func_0_5_2_6_3: != true
Func_0_5_2_5_6: != true
Func_0_5_2_5_4: == false
Func_0_5_2_5_3: <= true
Func_0_5_2_5_2: != true
Func_0_5_2_4_5: > false
Func_0_5_2_4_2: <= true
Func_0_5_2_2_5: > true
Func_0_5_2_1_6: > false
Func_0_5_2_1_1: != true
Func_0_5_1: != true
Func_0_4_6_6_5: <= true
Func_0_4_6_6: == false
Func_0_4_6_5_6: <= true
Func_0_4_6_5_5: != true
Func_0_4_6_5_2: <= true
Func_0_4_6_5: == false
Func_0_4_6_3_6: >= true
Func_0_4_6_3_3: == false
Func_0_4_6_3_2: <= false
Func_0_4_6_2: == false
Func_0_4_5_6: >= false
Func_0_4_5_5: < true
Func_0_4_5_3_5: == false
Func_0_4_5_2_6: > false
Func_0_4_5_2_4: >= true
Func_0_4_5_2_1: <= false
Func_0_4_5_2: >= true
Func_0_4_5_1_5: == false
Func_0_4_5_1_2: > true
Func_0_4_4_5: != true
Func_0_4_4_2_6: < true
Func_0_4_4_2_5: != false
Func_0_4_4_2_3: <= true
Func_0_4_4_2: == false
Func_0_4_4_1_4: >= false
Func_0_4_3_6_6: <= true
Func_0_4_3_6_5: <= true
Func_0_4_3_6_2: >= true
Func_0_4_3_6_1: == true
Func_0_4_3_4: >= true
Func_0_4_3_2_2: == false
Func_0_4_3_1_3: > true
Func_0_4_3_1_1: != true
Func_0_4_2_5_4: <= true
Func_0_4_2_5_1: != true
Func_0_4_1_4: >= true
Func_0_4_1_3_1: >= true
Func_0_4_1_2_3: < false
Func_0_4_1_1_1: >= true
Func_0_3_6_6_5: >= true
Func_0_3_6_6_1: < true
Func_0_3_6_5_5: > false
Func_0_3_6_4_1: < false
Func_0_3_6_3_4: != true
Func_0_3_5_6_6: == true
Func_0_3_5_6_5: <= true
Func_0_3_5_6_2: != true
Func_0_3_5_4: == false
Func_0_3_5_3: > false
Func_0_3_5_2_6: != true
Func_0_3_5_2_5: <= true
Func_0_3_5_2_4: > false
Func_0_3_5_2_2: == false
Func_0_3_5_1_1: != true
Func_0_3_4_1_1: < true
Func_0_3_4_1: < true
Func_0_3_3_6_4: <= false
Func_0_3_3_6_1: <= true
Func_0_3_3_5_6: != true
Func_0_3_3_5_1: != true
Func_0_3_3_4_6: <= true
Func_0_3_3_4_5: <= true
Func_0_3_3_4_2: < true
Func_0_3_2_6_6: <= true
Func_0_3_2_6_3: >= false
Func_0_3_2_6_1: >= true
Func_0_3_2_5_6: < true
Func_0_3_2_5_3: >= true
Func_0_3_2_5_1: > true
Func_0_3_2_4_3: > true
Func_0_3_2_3_3: > true
Func_0_3_2_3_2: <= false
Func_0_3_2_1_5: != true
Func_0_3_1_6_6: > true
Func_0_3_1_6_4: >= false
Func_0_3_1_4_4: <= true
Func_0_3_1_4_3: == true
Func_0_3_1_4_2: == false
Func_0_3_1_4_1: <= true
Func_0_3_1_3_5: == false
Func_0

Stack trace
   at JIT_Methodical._fp_exgen_10w5d_cs_ro_10w5d_cs_ro_._fp_exgen_10w5d_cs_ro_10w5d_cs_ro_sh()

BruceForstall added a commit to BruceForstall/runtime that referenced this issue Mar 22, 2021
Currently failing in jitstress2_jitstressregs3 configuration.

Issue: dotnet#48892
BruceForstall added a commit that referenced this issue Mar 23, 2021
Currently failing in jitstress2_jitstressregs3 configuration.

Issue: #48892
@JulieLeeMSFT JulieLeeMSFT added the Priority:0 Work that we can't release without label Mar 29, 2021
@AndyAyersMS
Copy link
Member

Repros at e830f10. The jit is crashing during LSRA while jitting testout1.Func_0_2_3_4().

Last bit of the jit log shows:

RESOLVING EDGES
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB12, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB15
New Basic Block BB32 [0051] created.
Splitting edge from BB12 to BB15; adding BB32
Setting edge weights for BB12 -> BB32 to [0 .. 3.402823e+38]
   BB32 bottom: move V44 from STK to f16 (Critical)
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB28, jumpBlk=BB00, runRarely=true)
fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=true, insertAtEnd=false): inserting after BB29
New Basic Block BB33 [0052] created.
Splitting edge from BB28 to BB15; adding BB33
Setting edge weights for BB28 -> BB33 to [0 .. 3.402823e+38]
   BB33 bottom: move V44 from f2 to f16 (Critical)
   BB21 bottom: move V44 from STK to f16 (Join)
   BB22 top: move V44 from f2 to STK (Split)
   BB22 bottom: move V44 from STK to f16 (Join)
   BB29 bottom: move V51 from f16 to f0 (Split)
   BB29 bottom: move V44 from f2 to STK (Split)
   BB29 bottom: move V45 from f17 to f2 (Split)

Seems like interval is invalid here:

    insertMove(block, insertionPoint, interval->varNum, fromReg, toReg);

Stack backtrace:

Process 245 stopped
* thread #1, name = 'corerun', stop reason = signal SIGSEGV: invalid address (fault address: 0x23)
    frame #0: 0xf087e818 libclrjit.so`LinearScan::addResolution(this=0x00eded54, block=0x00ebbcc8, insertionPoint=0x00000000, interval=0x00000003, toReg=REG_F17, fromReg=204) at lsra.cpp:8229
(lldb) thread backtrace
* thread #1, name = 'corerun', stop reason = signal SIGSEGV: invalid address (fault address: 0x23)
  * frame #0: 0xf087e818 libclrjit.so`LinearScan::addResolution(this=0x00eded54, block=0x00ebbcc8, insertionPoint=0x00000000, interval=0x00000003, toReg=REG_F17, fromReg=204) at lsra.cpp:8229
    frame #1: 0xf088016e libclrjit.so`LinearScan::resolveEdge(this=<unavailable>, fromBlock=<unavailable>, toBlock=<unavailable>, resolveType=<unavailable>, liveSet=0xfffecc3c) at lsra.cpp:9031
    frame #2: 0xf087bf60 libclrjit.so`LinearScan::resolveEdges(this=<unavailable>) at lsra.cpp:8631
    frame #3: 0xf08718b4 libclrjit.so`LinearScan::resolveRegisters(this=0x00eded54) at lsra.cpp:7702
    frame #4: 0xf086cc74 libclrjit.so`LinearScan::doLinearScan(this=0x00eded54) at lsra.cpp:1280
    frame #5: 0xf079b1cc libclrjit.so`ActionPhase<Compiler::compCompile(void**, unsigned int*, JitFlags*)::$_10>::DoPhase() [inlined] Compiler::compCompile(this=<unavailable>)::$_10::operator()() const at compiler.cpp:5172
    frame #6: 0xf079b1c2 libclrjit.so`ActionPhase<Compiler::compCompile(void**, unsigned int*, JitFlags*)::$_10>::DoPhase(this=<unavailable>) at phase.h:64
    frame #7: 0xf08cb3f6 libclrjit.so`Phase::Run(this=0xfffecd98) at phase.cpp:61
    frame #8: 0xf0795a7a libclrjit.so`Compiler::compCompile(void**, unsigned int*, JitFlags*) [inlined] void DoPhase<Compiler::compCompile(void**, unsigned int*, JitFlags*)::$_10>(_compiler=<unavailable>, _phase=<unavailable>, _action=<unavailable>)::$_10) at phase.h:78
    frame #9: 0xf0795a5e libclrjit.so`Compiler::compCompile(this=0x00fba1dc, methodCodePtr=<unavailable>, methodCodeSize=<unavailable>, compileFlags=<unavailable>) at compiler.cpp:5173

Will see if this repros using an altjit.

@AndyAyersMS
Copy link
Member

Yes, repros with

set COMPlus_AltJitName=clrjit_unix_arm_x86.dll
set COMPlus_AltJit=Func_0_2_3_4
set COMPlus_JitStress=2
set COMPlus_JitStressRegs=3
set COMPlus_TieredCompilation=0

on checked windows x86:

Assert failure(PID 158136 [0x000269b8], Thread: 159408 [0x26eb0]): Assertion failed 'interval != nullptr' in 'testout1:Func_0_2_3_4():double' during 'LSRA allocate' (IL size 362)

    File: C:\repos\runtime2\src\coreclr\jit\lsra.cpp Line: 9030
    Image: C:\repos\runtime2\artifacts\tests\coreclr\windows.x86.Checked\Tests\Core_Root\corerun.exe

@kunalspathak do you want me to keep digging in, or do you want to take this one over?

@kunalspathak
Copy link
Member

kunalspathak commented Mar 30, 2021

Thanks @AndyAyersMS for getting minimal repro. I can look into it.

@kunalspathak
Copy link
Member

I was able to repro the issue on e830f10 but it doesn't repro on main. I will investigate further.

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Apr 7, 2021
.NET Core CodeGen automation moved this from P1 to Done Apr 14, 2021
@ghost ghost locked as resolved and limited conversation to collaborators May 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI in-pr There is an active PR which will close this issue when it is merged JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro) Priority:0 Work that we can't release without
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

6 participants