dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.56k stars 4.54k forks source link

Test failure: JIT/Directed/tailcall/more_tailcalls/more_tailcalls.cmd #99410

Open BruceForstall opened 4 months ago

BruceForstall commented 4 months ago

Test timeout

Pipeline: runtime-coreclr gcstress0x3-gcstress0xc Job: coreclr linux arm Checked gcstress0xc

https://dev.azure.com/dnceng-public/public/_build/results?buildId=592477&view=ms.vss-test-web.build-test-results-tab

03:24:36.395 Running test: JIT/Directed/tailcall/more_tailcalls/more_tailcalls.cmd
Invoking: sudo ls -l /home/helixbot/dotnetbuild/dumps/coredump.226.dmp.crashreport.json
stdout: -rw------- 1 helixbot2 adm 24482 Mar  7 03:24 /home/helixbot/dotnetbuild/dumps/coredump.226.dmp.crashreport.json

=========================================
Child process took too long. Timed out... Exiting...
App Exit Code: 110
Expected: 100
Actual: 110
END EXECUTION - FAILED

Failing since 20240302.1

cc @janvorli

BruceForstall commented 4 months ago

Three additional failures in gcstress-extra:

https://dev.azure.com/dnceng-public/public/_build/results?buildId=592476&view=ms.vss-test-web.build-test-results-tab

coreclr linux arm Checked gcstress0xc_disabler2r_heapverify1 coreclr linux arm Checked gcstress0xc_disabler2r coreclr linux arm Checked gcstress0xc_tailcallstress

BruceForstall commented 3 months ago

@dotnet/jit-contrib This is a GCStress issue apparently related to tailcall.

SingleAccretion commented 3 months ago

I wonder if this could have something to do with the recent conversion of copy helpers to managed code.

Stack args for fast tail calls are set up in a no-gc region. If a copy helper that calls managed code ends up in this region, problems will follow.