-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
arch-arm32area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbugdisabled-testThe test is disabled in source code against the issueThe test is disabled in source code against the issueos-linuxLinux OS (any supported distro)Linux OS (any supported distro)
Milestone
Description
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
Metadata
Metadata
Assignees
Labels
arch-arm32area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbugdisabled-testThe test is disabled in source code against the issueThe test is disabled in source code against the issueos-linuxLinux OS (any supported distro)Linux OS (any supported distro)