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

JIT ABI stress test: Assertions on Arm32 #68837

Closed
steveharter opened this issue May 3, 2022 · 2 comments · Fixed by #70075
Closed

JIT ABI stress test: Assertions on Arm32 #68837

steveharter opened this issue May 3, 2022 · 2 comments · Fixed by #70075
Assignees
Labels
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI bug disabled-test The test is disabled in source code against the issue os-linux Linux OS (any supported distro)
Milestone

Comments

@steveharter
Copy link
Member

steveharter commented May 3, 2022

Description

Changes made in #67917 are now causing test failures, although the issues are in the JIT not by that PR. The test failures started when that PR added support for DynamicMethod.Invoke() (which the JIT tests use) to use IL Emit to generate the code to perform the invoke (instead of native code).

Two asserts in 4 tests:

  • /JIT/Stress/ABI/tailcalls_d/
  • /JIT/Stress/ABI/tailcalls_do
  • /JIT/Stress/ABI/pinvokes_d/
  • /JIT/Stress/ABI/pinvokes_do

Reproduction Steps

Run the JIT Stress tests on Ubuntu ubuntu-18.04 arm32.

Expected behavior

No Asserts.

Actual behavior

Asserts:

Console log: 'JIT.Stress' from job 5ba38640-db46-4bf7-bdb9-98a085490bf7 (ubuntu.1804.armarch.open) using docker image mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440 on ddvsotx2l132

<LINES REMOVED HERE>

  Starting:    JIT.Stress.XUnitWrapper (parallel test collections = on, max threads = 4)
    JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh [FAIL]
      
      Assert failure(PID 85 [0x00000055], Thread: 85 [0x0055]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh: line 401:    85 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_d/tailcalls_d.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_d.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing tailcalls
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done (49 successful tailcalls tested)
      100 callers done (100 successful tailcalls tested)
      150 callers done (150 successful tailcalls tested)
      [createdump] Gathering state for process 85 corerun
      [createdump] Crashing thread 00000055 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.85.dmp
      [createdump] Written 84791296 bytes (20701 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_tailcalls_d_tailcalls_d_._ABI_tailcalls_d_tailcalls_d_sh()
      Output:
        
        Assert failure(PID 85 [0x00000055], Thread: 85 [0x0055]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh: line 401:    85 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_d/tailcalls_d.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_d.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing tailcalls
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done (49 successful tailcalls tested)
        100 callers done (100 successful tailcalls tested)
        150 callers done (150 successful tailcalls tested)
        [createdump] Gathering state for process 85 corerun
        [createdump] Crashing thread 00000055 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.85.dmp
        [createdump] Written 84791296 bytes (20701 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh
      
      Assert failure(PID 82 [0x00000052], Thread: 82 [0x0052]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh: line 401:    82 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_do/tailcalls_do.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_do.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing tailcalls
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done (47 successful tailcalls tested)
      100 callers done (100 successful tailcalls tested)
      150 callers done (150 successful tailcalls tested)
      [createdump] Gathering state for process 82 corerun
      [createdump] Crashing thread 00000052 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.82.dmp
      [createdump] Written 83685376 bytes (20431 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh
      Expected: True
      Actual:   False
      Stack Trace:
    JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh [FAIL]
           at JIT_Stress._ABI_tailcalls_do_tailcalls_do_._ABI_tailcalls_do_tailcalls_do_sh()
      Output:
        
        Assert failure(PID 82 [0x00000052], Thread: 82 [0x0052]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh: line 401:    82 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_do/tailcalls_do.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_do.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing tailcalls
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done (47 successful tailcalls tested)
        100 callers done (100 successful tailcalls tested)
        150 callers done (150 successful tailcalls tested)
        [createdump] Gathering state for process 82 corerun
        [createdump] Crashing thread 00000052 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.82.dmp
        [createdump] Written 83685376 bytes (20431 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh
    JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh [FAIL]
      
      Assert failure(PID 80 [0x00000050], Thread: 80 [0x0050]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh: line 401:    80 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_d/pinvokes_d.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_d.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing pinvokes
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done
      100 callers done
      150 callers done
      200 callers done
      250 callers done
      300 callers done
      350 callers done
      400 callers done
      450 callers done
      [createdump] Gathering state for process 80 corerun
      [createdump] Crashing thread 00000050 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.80.dmp
      [createdump] Written 81850368 bytes (19983 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_pinvokes_d_pinvokes_d_._ABI_pinvokes_d_pinvokes_d_sh()
      Output:
        
        Assert failure(PID 80 [0x00000050], Thread: 80 [0x0050]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh: line 401:    80 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_d/pinvokes_d.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_d.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing pinvokes
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done
        100 callers done
        150 callers done
        200 callers done
        250 callers done
        300 callers done
        350 callers done
        400 callers done
        450 callers done
        [createdump] Gathering state for process 80 corerun
        [createdump] Crashing thread 00000050 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.80.dmp
        [createdump] Written 81850368 bytes (19983 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh
    JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh [FAIL]
      
      Assert failure(PID 121 [0x00000079], Thread: 121 [0x0079]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh: line 401:   121 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_do/pinvokes_do.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_do.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing pinvokes
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done
      100 callers done
      150 callers done
      200 callers done
      250 callers done
      300 callers done
      350 callers done
      400 callers done
      450 callers done
      [createdump] Gathering state for process 121 corerun
      [createdump] Crashing thread 00000079 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.121.dmp
      [createdump] Written 80670720 bytes (19695 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_pinvokes_do_pinvokes_do_._ABI_pinvokes_do_pinvokes_do_sh()
      Output:
        
        Assert failure(PID 121 [0x00000079], Thread: 121 [0x0079]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh: line 401:   121 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_do/pinvokes_do.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_do.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing pinvokes
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done
        100 callers done
        150 callers done
        200 callers done
        250 callers done
        300 callers done
        350 callers done
        400 callers done
        450 callers done
        [createdump] Gathering state for process 121 corerun
        [createdump] Crashing thread 00000079 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.121.dmp
        [createdump] Written 80670720 bytes (19695 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh
  Finished:    JIT.Stress.XUnitWrapper
=== TEST EXECUTION SUMMARY ===
   JIT.Stress.XUnitWrapper  Total: 5, Errors: 0, Failed: 4, Skipped: 0, Time: 37.803s

Regression?

No response

Known Workarounds

No response

Configuration

docker image mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440 on ddvsotx2l132

Other information

No response

@steveharter steveharter added bug arch-arm32 disabled-test The test is disabled in source code against the issue os-linux Linux OS (any supported distro) JitStress CLR JIT issues involving JIT internal stress modes area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels May 3, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label May 3, 2022
@ghost
Copy link

ghost commented May 3, 2022

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

Issue Details

Description

Placeholder until #67917 is in.

These failures started when DynamicMethod.Invoke() uses IL Emit to generate the code to perform the invoke (instead of native code).

Two asserts in 4 tests:

  • /JIT/Stress/ABI/tailcalls_d/
  • /JIT/Stress/ABI/tailcalls_do
  • /JIT/Stress/ABI/pinvokes_d/
  • /JIT/Stress/ABI/pinvokes_do

Reproduction Steps

Run the JIT Stress tests on Ubuntu ubuntu-18.04 arm32.

Expected behavior

No Asserts.

Actual behavior

Asserts:

Console log: 'JIT.Stress' from job 5ba38640-db46-4bf7-bdb9-98a085490bf7 (ubuntu.1804.armarch.open) using docker image mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440 on ddvsotx2l132

<LINES REMOVED HERE>

  Starting:    JIT.Stress.XUnitWrapper (parallel test collections = on, max threads = 4)
    JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh [FAIL]
      
      Assert failure(PID 85 [0x00000055], Thread: 85 [0x0055]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh: line 401:    85 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_d/tailcalls_d.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_d.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing tailcalls
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done (49 successful tailcalls tested)
      100 callers done (100 successful tailcalls tested)
      150 callers done (150 successful tailcalls tested)
      [createdump] Gathering state for process 85 corerun
      [createdump] Crashing thread 00000055 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.85.dmp
      [createdump] Written 84791296 bytes (20701 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_tailcalls_d_tailcalls_d_._ABI_tailcalls_d_tailcalls_d_sh()
      Output:
        
        Assert failure(PID 85 [0x00000055], Thread: 85 [0x0055]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh: line 401:    85 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_d/tailcalls_d.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_d.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing tailcalls
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done (49 successful tailcalls tested)
        100 callers done (100 successful tailcalls tested)
        150 callers done (150 successful tailcalls tested)
        [createdump] Gathering state for process 85 corerun
        [createdump] Crashing thread 00000055 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.85.dmp
        [createdump] Written 84791296 bytes (20701 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_d/tailcalls_d.sh
      
      Assert failure(PID 82 [0x00000052], Thread: 82 [0x0052]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh: line 401:    82 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_do/tailcalls_do.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_do.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing tailcalls
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done (47 successful tailcalls tested)
      100 callers done (100 successful tailcalls tested)
      150 callers done (150 successful tailcalls tested)
      [createdump] Gathering state for process 82 corerun
      [createdump] Crashing thread 00000052 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.82.dmp
      [createdump] Written 83685376 bytes (20431 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh
      Expected: True
      Actual:   False
      Stack Trace:
    JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh [FAIL]
           at JIT_Stress._ABI_tailcalls_do_tailcalls_do_._ABI_tailcalls_do_tailcalls_do_sh()
      Output:
        
        Assert failure(PID 82 [0x00000052], Thread: 82 [0x0052]): Assertion failed '!"NYI: odd sized struct in fgMorphMultiregStructArg"' in 'DynamicClass:InvokeStub_ABIStress_TailCallee2449(System.Object,System.Object,int):System.Object' during 'Morph - Global' (IL size 35; hash 0x87abd571; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/morph.cpp Line: 3919
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh: line 401:    82 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/tailcalls_do/tailcalls_do.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false tailcalls_do.dll '--tailcalls' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing tailcalls
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done (47 successful tailcalls tested)
        100 callers done (100 successful tailcalls tested)
        150 callers done (150 successful tailcalls tested)
        [createdump] Gathering state for process 82 corerun
        [createdump] Crashing thread 00000052 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.82.dmp
        [createdump] Written 83685376 bytes (20431 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/tailcalls_do/tailcalls_do.sh
    JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh [FAIL]
      
      Assert failure(PID 80 [0x00000050], Thread: 80 [0x0050]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh: line 401:    80 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_d/pinvokes_d.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_d.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing pinvokes
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done
      100 callers done
      150 callers done
      200 callers done
      250 callers done
      300 callers done
      350 callers done
      400 callers done
      450 callers done
      [createdump] Gathering state for process 80 corerun
      [createdump] Crashing thread 00000050 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.80.dmp
      [createdump] Written 81850368 bytes (19983 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_pinvokes_d_pinvokes_d_._ABI_pinvokes_d_pinvokes_d_sh()
      Output:
        
        Assert failure(PID 80 [0x00000050], Thread: 80 [0x0050]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh: line 401:    80 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_d/pinvokes_d.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_d.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing pinvokes
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done
        100 callers done
        150 callers done
        200 callers done
        250 callers done
        300 callers done
        350 callers done
        400 callers done
        450 callers done
        [createdump] Gathering state for process 80 corerun
        [createdump] Crashing thread 00000050 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.80.dmp
        [createdump] Written 81850368 bytes (19983 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_d/pinvokes_d.sh
    JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh [FAIL]
      
      Assert failure(PID 121 [0x00000079], Thread: 121 [0x0079]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
      
          File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
          Image: /root/helix/work/correlation/corerun
      
      /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh: line 401:   121 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
      
      Return code:      1
      Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_do/pinvokes_do.output.txt
      Raw output:
      BEGIN EXECUTION
      /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_do.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
      Stressing pinvokes
      OSVersion: Unix 4.9.140.0
      OSArchitecture: Arm64
      ProcessArchitecture: Arm
      Selecting armhf ABI.
      50 callers done
      100 callers done
      150 callers done
      200 callers done
      250 callers done
      300 callers done
      350 callers done
      400 callers done
      450 callers done
      [createdump] Gathering state for process 121 corerun
      [createdump] Crashing thread 00000079 signal 00000006
      [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.121.dmp
      [createdump] Written 80670720 bytes (19695 pages) to core file
      [createdump] Dump successfully written
      Expected: 100
      Actual: 134
      END EXECUTION - FAILED
      Test Harness Exitcode is : 1
      To run the test:
      > set CORE_ROOT=/root/helix/work/correlation
      > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh
      Expected: True
      Actual:   False
      Stack Trace:
           at JIT_Stress._ABI_pinvokes_do_pinvokes_do_._ABI_pinvokes_do_pinvokes_do_sh()
      Output:
        
        Assert failure(PID 121 [0x00000079], Thread: 121 [0x0079]): Assertion failed 'remainingSize == 4' in 'DynamicClass:InvokeStub_ABIStress_PInvokee727(System.Object,System.Object,int):System.Object' during 'Generate code' (IL size 146; hash 0x4b02a15f; FullOpts)
        
            File: /__w/1/s/src/coreclr/jit/codegenarmarch.cpp Line: 1127
            Image: /root/helix/work/correlation/corerun
        
        /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh: line 401:   121 Aborted                 (core dumped) $LAUNCHER $ExePath "${CLRTestExecutionArguments[@]}"
        
        Return code:      1
        Raw output file:      /root/helix/work/workitem/uploads/Reports/JIT.Stress/ABI/pinvokes_do/pinvokes_do.output.txt
        Raw output:
        BEGIN EXECUTION
        /root/helix/work/correlation/corerun -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false pinvokes_do.dll '--pinvokes' '--num-calls' '1000' '--no-ctrlc-summary'
        Stressing pinvokes
        OSVersion: Unix 4.9.140.0
        OSArchitecture: Arm64
        ProcessArchitecture: Arm
        Selecting armhf ABI.
        50 callers done
        100 callers done
        150 callers done
        200 callers done
        250 callers done
        300 callers done
        350 callers done
        400 callers done
        450 callers done
        [createdump] Gathering state for process 121 corerun
        [createdump] Crashing thread 00000079 signal 00000006
        [createdump] Writing minidump with heap to file /home/helixbot/dotnetbuild/dumps/coredump.121.dmp
        [createdump] Written 80670720 bytes (19695 pages) to core file
        [createdump] Dump successfully written
        Expected: 100
        Actual: 134
        END EXECUTION - FAILED
        Test Harness Exitcode is : 1
        To run the test:
        > set CORE_ROOT=/root/helix/work/correlation
        > /root/helix/work/workitem/e/JIT/Stress/ABI/pinvokes_do/pinvokes_do.sh
  Finished:    JIT.Stress.XUnitWrapper
=== TEST EXECUTION SUMMARY ===
   JIT.Stress.XUnitWrapper  Total: 5, Errors: 0, Failed: 4, Skipped: 0, Time: 37.803s

Regression?

No response

Known Workarounds

No response

Configuration

docker image mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7-bfcd90a-20200121150440 on ddvsotx2l132

Other information

No response

Author: steveharter
Assignees: -
Labels:

bug, arch-arm32, disabled-test, os-linux, JitStress, area-CodeGen-coreclr

Milestone: -

@jakobbotsch jakobbotsch removed the JitStress CLR JIT issues involving JIT internal stress modes label May 4, 2022
@jakobbotsch jakobbotsch changed the title JIT Stress: Assertions on Arm32 JIT ABI stress test: Assertions on Arm32 May 4, 2022
@jakobbotsch
Copy link
Member

The underlying issues look like #60705 and #61168, but let's keep this for the disabled test.
I've also removed JitStress label (it normally refers to running the JIT under a non-standard configuration COMPlus_JitStress=X, while this is a failure in normal configuration in the ABI stress test).

@jakobbotsch jakobbotsch removed the untriaged New issue has not been triaged by the area owner label May 4, 2022
@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone May 20, 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
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI bug disabled-test The test is disabled in source code against the issue os-linux Linux OS (any supported distro)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants