Open gbalykov opened 3 days ago
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.
Looks like now debug info generated for
Optimized
differs fromQuickJitted
andMinOptJitted
and test seems to need update for such case. Is this correct?
The test already has different debug info expected for unoptimized and optimized versions of the test cases.
It's odd that we do not see this failing in our CI if it really does fail with TieredCompilation=0
. CI should be running this test with TC=0
regularly.
CI should be running this test with TC=0 regularly.
Is this done for each PR or some weekly testing? For example, I've tried to find such test in https://github.com/dotnet/runtime/pull/104432 and it seems it wasn't run there (please correct me if I'm wrong). Note that this issue happens only with release build of runtime and tests, and not sure if this test is part of pri0 or not.
Is this done for each PR or some weekly testing? For example, I've tried to find such test in #104432 and it seems it wasn't run there (please correct me if I'm wrong).
The test is part of Directed_3
. Here is the run of Directed_3
with DOTNET_TieredCompilation=0
in that PR: https://helixre107v0xdcypoyl9e7f.blob.core.windows.net/dotnet-runtime-refs-pull-104432-merge-c83008598e104e0fb6/Directed_3/1/console.ef8e5326.log?helixlogtype=result
14:29:18.611 Running test: JIT/Directed/debugging/debuginfo/tester/tester.cmd
Return code: 0
Raw output file: C:\h\w\A26508E8\w\AFDE09A2\uploads\debugging\debuginfo\tester\output.txt
Raw output:
BEGIN EXECUTION
"C:\h\w\A26508E8\p\corerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true" tester.dll
0.0s: ==TEST STARTING==
0.6s: Started sending sentinel events...
0.7s: Connecting to EventPipe...
1.2s: Creating EventPipeEventSource...
1.3s: EventPipeEventSource created
1.3s: Dynamic.All callback registered
1.3s: Running optional trace validator
1.8s: Finished running optional trace validator
1.8s: Starting stream processing...
2.1s: Saw new provider 'Microsoft-Windows-DotNETRuntime'
2.9s: Saw sentinel event
2.9s: Stopped sending sentinel events
2.9s: Starting event generating action...
3.0s: Stopping event generating action
3.0s: Sending StopTracing command...
3.1s: Saw new provider 'Microsoft-DotNETCore-EventPipe'
3.3s: Saw new provider 'Microsoft-Windows-DotNETRuntimeRundown'
3.3s: Stopping stream processing
3.3s: Dropped 0 events
3.3s: Finished StopTracing command
3.3s: Reader task finished
3.3s: Validating optional callback...
[tests_d]DebugInfoMethods.TestUninlined: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_d]DebugInfoMethods.TestControlFlow: Validate mappings for debuggable codegen (tier: MinOptJitted)
[tests_r]DebugInfoMethods.TestUninlined: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestLateFailingInlineCandidate: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestSucceedingInlineCandidate: Validate mappings for optimized codegen (tier: Optimized)
[tests_r]DebugInfoMethods.TestControlFlow: Validate mappings for optimized codegen (tier: Optimized)
3.4s: ==TEST FINISHED: PASSED!==
Expected: 100
Actual: 100
END EXECUTION - PASSED
PASSED
On PRs we run all tests with DOTNET_TieredCompilation=0
, while on rolling builds (twice a day I believe) we run with both DOTNET_TieredCompilation=0
and DOTNET_TieredCompilation=1
.
Note that this issue happens only with release build of runtime and tests, and not sure if this test is part of pri0 or not.
Does the failure reproduce with release builds but not with checked builds? That would definitely be something to investigate.
Does the failure reproduce with release builds but not with checked builds?
I did some more testing with DOTNET_TieredCompilation=0
:
Ok, that needs to be investigated. Definitely seems like it has been failing for a while (https://dev.azure.com/dnceng-public/public/_build?definitionId=135&_a=summary has the failures).
Test
JIT/Directed/debugging/debuginfo/tester
passes with tiered jit and other env vars specified for it:Output:
However, setting
DOTNET_TieredCompilation=0
leads to fail:This happens independently from architecture. According to original PR that added it (https://github.com/dotnet/runtime/pull/61962), README and other files, it seems that it should support such mode. Looks like now debug info generated for
Optimized
differs fromQuickJitted
andMinOptJitted
and test seems to need update for such case. Is this correct?Build of e78b72b1fdf43d9678877400bcfe801b38c14681:
cc @jakobbotsch @dotnet/samsung