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: Regressions/coreclr/GitHub_35000/test35000/test35000.cmd #113106

Closed
v-wenyuxu opened this issue Mar 4, 2025 · 34 comments · Fixed by #113760
Closed

Test failure: Regressions/coreclr/GitHub_35000/test35000/test35000.cmd #113106

v-wenyuxu opened this issue Mar 4, 2025 · 34 comments · Fixed by #113760
Assignees
Labels
arch-x86 area-ExceptionHandling-coreclr blocking-outerloop Blocking the 'runtime-coreclr outerloop' and 'runtime-libraries-coreclr outerloop' runs in-pr There is an active PR which will close this issue when it is merged os-windows
Milestone

Comments

@v-wenyuxu
Copy link

Failed in: runtime-coreclr outerloop 20250303.5

Failed tests:

coreclr windows x86 Checked no_tiered_compilation @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB7FA09C6wAD8509A9uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwB7FA09C6pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/3/2025 7:45:54 PM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB7FA09C6wAD8509A9eRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)
@v-wenyuxu v-wenyuxu added arch-x86 blocking-outerloop Blocking the 'runtime-coreclr outerloop' and 'runtime-libraries-coreclr outerloop' runs os-windows labels Mar 4, 2025
@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 4, 2025
@dotnet-policy-service dotnet-policy-service bot added the untriaged New issue has not been triaged by the area owner label Mar 4, 2025
@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr outerloop 20250304.4

Failed tests:

coreclr windows x86 Checked no_tiered_compilation @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwA2ED08EEw9C86086BuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwA2ED08EEpcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/5/2025 3:04:51 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwA2ED08EEw9C86086BeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@ericstj
Copy link
Member

ericstj commented Mar 5, 2025

Would be nice if we had line info here. I think that means CoreCLR tests are missing symbols? cc @hoyosjs

I pulled the helix payload and ran locally - here's what I see

Image

Here's a dump https://microsoft-my.sharepoint.com/:u:/p/ericstj/EZQCl-QQHKJNkLSw6caTPxAB4axXj2z-xZPPrMDwjdPPFA?e=Svx2hf

So that looks to me like it's either a JIT or runtime problem since the exception is not being caught correctly. @jeffschwMSFT can you please re-triage?

@ericstj
Copy link
Member

ericstj commented Mar 5, 2025

Correction - the test expects the NRE when it's invoking an instance method without providing the instance. The problem here is that it only null-ref'ed once instead of 10 times. @steveharter could this be related to invoke work?

Expected: 100
Actual: 101

return (nullRefCount == LoopCount) ? 100 : 101;

@ericstj ericstj added area-System.Reflection and removed area-VM-coreclr needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 5, 2025
@ericstj ericstj removed the untriaged New issue has not been triaged by the area owner label Mar 5, 2025
@ericstj ericstj added this to the 10.0.0 milestone Mar 5, 2025
@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr outerloop 20250305.2

Failed tests:

coreclr windows x86 Checked no_tiered_compilation @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hw9FB508D2wADD408AFuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hw9FB508D2pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/5/2025 7:53:19 PM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hw9FB508D2wADD408AFeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr jitstress 20250305.1

Failed tests:

coreclr windows x86 Checked jitstress2_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked disabler2r @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwA46E0926wA76308EEuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwA46E0926pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/6/2025 6:14:00 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwA46E0926wA76308EEeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr ilasm 20250308.1

Failed tests:

coreclr windows x86 Checked ilasmroundtrip @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB88B0A50wA59E08C3uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Writing PDB file: C:hwB88B0A50wA59E08C3eRegressionscoreclrGitHub_35000	est35000	est35000.pdb
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0& A_2)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr r2r-extra 20250309.1

Failed tests:

R2R-CG2 windows x86 Checked forcerelocs @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitstressregs1 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitstressregs4 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitstressregs3 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitminopts @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked gcstress0xc @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB08909AFwB0A2096BuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
test35000.dll
TestLibrary.dll
        2 file(s) copied.
 3:52:28.56
Response file: C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp
C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000IL-CG2	est35000.dll
-o:C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB08909AFpSystem.*.dll
-r:C:hwB08909AFpMicrosoft.*.dll
-r:C:hwB08909AFp\xunit.*.dll
-r:C:hwB08909AFpmscorlib.dll
-r:C:hwB08909AFp
etstandard.dll
"Running CrossGen2:  "C:hwB08909AFpcrossgen2crossgen2.exe" @"C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp"   -r:C:hwB08909AFwB0A2096BeRegressionsRegressionsIL-CG2*.dll  -r:C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll
"Running R2RDump:  "dotnet" "C:hwB08909AFp
2rdump
2rdump.dll" --header --sc --in C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll --out C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000	est35000.dll.r2rdump --val"
 3:52:29.04
 3:52:29.04
Response file: C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp
C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000IL-CG2TestLibrary.dll
-o:C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB08909AFpSystem.*.dll
-r:C:hwB08909AFpMicrosoft.*.dll
-r:C:hwB08909AFp\xunit.*.dll
-r:C:hwB08909AFpmscorlib.dll
-r:C:hwB08909AFp
etstandard.dll
"Running CrossGen2:  "C:hwB08909AFpcrossgen2crossgen2.exe" @"C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp"   -r:C:hwB08909AFwB0A2096BeRegressionsRegressionsIL-CG2*.dll  -r:C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
"Running R2RDump:  "dotnet" "C:hwB08909AFp
2rdump
2rdump.dll" --header --sc --in C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll --out C:hwB08909AFwB0A2096BeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.r2rdump --val"
 3:52:29.65
 "C:hwB08909AFpcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/10/2025 3:52:28 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB08909AFwB0A2096BeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at Xunit.Assert.True(Boolean condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 123
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@AndyAyersMS
Copy link
Member

AndyAyersMS commented Mar 11, 2025

This could be related to recent x86 EH related changes in the JIT. Rerunning jitstress now to see if we've fixed this via #113330.

https://dev.azure.com/dnceng-public/public/_build/results?buildId=976183&view=results

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr r2r 20250310.1

Failed tests:

R2R-CG2 windows x86 Checked @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB1600A02wB389098CuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
test35000.dll
TestLibrary.dll
        2 file(s) copied.
 6:54:03.33
Response file: C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp
C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000IL-CG2	est35000.dll
-o:C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB1600A02pSystem.*.dll
-r:C:hwB1600A02pMicrosoft.*.dll
-r:C:hwB1600A02p\xunit.*.dll
-r:C:hwB1600A02pmscorlib.dll
-r:C:hwB1600A02p
etstandard.dll
"Running CrossGen2:  "C:hwB1600A02pcrossgen2crossgen2.exe" @"C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp"   -r:C:hwB1600A02wB389098CeRegressionsRegressionsIL-CG2*.dll  -r:C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll
"Running R2RDump:  "dotnet" "C:hwB1600A02p
2rdump
2rdump.dll" --header --sc --in C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll --out C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000	est35000.dll.r2rdump --val"
 6:54:03.81
 6:54:03.83
Response file: C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp
C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000IL-CG2TestLibrary.dll
-o:C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB1600A02pSystem.*.dll
-r:C:hwB1600A02pMicrosoft.*.dll
-r:C:hwB1600A02p\xunit.*.dll
-r:C:hwB1600A02pmscorlib.dll
-r:C:hwB1600A02p
etstandard.dll
"Running CrossGen2:  "C:hwB1600A02pcrossgen2crossgen2.exe" @"C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp"   -r:C:hwB1600A02wB389098CeRegressionsRegressionsIL-CG2*.dll  -r:C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
"Running R2RDump:  "dotnet" "C:hwB1600A02p
2rdump
2rdump.dll" --header --sc --in C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll --out C:hwB1600A02wB389098CeRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.r2rdump --val"
 6:54:04.47
 "C:hwB1600A02pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/11/2025 6:54:03 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB1600A02wB389098CeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@AndyAyersMS
Copy link
Member

Works with JitMinOpts=1, so very likely a jit issue.

@AndyAyersMS AndyAyersMS added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-System.Reflection labels Mar 12, 2025
Copy link
Contributor

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

@AndyAyersMS
Copy link
Member

Implicated commit range is

6d344b3 Use minipal_getcpufeatures to detect for AVX (#113032)
9aa8d95 [main] Update dependencies from dotnet/roslyn-analyzers (#112936)
5c4ccef [main] Update dependencies from dotnet/cecil, dotnet/hotreload-utils, dotnet/icu, dotnet/runtime, dotnet/runtime-assets (#112833)
bd24074 [main] Fix LoaderAllocator computation for a generic type instance (#111706)
4fb4020 Optimize Min/Max paths with AVX10.2 intrinsics (#112535)
2b3b2d6 Added RuntimeType/RuntimeFlavor as a concept for building the Android HelloWorld app and updated android_scenarios to only run the BDN app tests for Mono RuntimeType. Also cleaned up the sample apps build file, removing the unnecessary parameters. (#112939)
3cf22b7 JIT: Template EH-specific checks in 3-opt layout (#111437)
3d27554 Add NonCryptographicHashAlgorithm Clone methods (#113087)
12e0ad6 Fix TensorPrimitives.MultiplyAddEstimate for integers (#113047)
dfac023 Add approved TensorPrimitives surface area (#112933)
1d44636 Add test for external assembly probe mechanism (#113007)
9c8ec9c [android] Make Android app on coreclr use host-runtime contract and provide external assembly probe (#112938)
6c4e699 Do not cache method parameters for collectible methods (#113085)
b75f5cb Tensor primitives divide int32 (#111505)
71772d1 JIT: Consolidate layout passes into one phase (#112004)
c40c261 [wasm] Stop hardcoding TFM in Wasm.Build.Tests (#112955)
367cf39 Automated bump of chrome version (#113036)
ecee265 Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250228.4 (#113057)
088d199 Add benchmarks.run_pgo_optrepeat collection (#112750)

@amanasifkhalid
Copy link
Member

Let me verify that inserting the NOP still fixes this...

Enabling the AMD64-specific NOP padding fix on x86 fixes this failure for me. I can open a PR for this, though I ought to check with @janvorli that this is the right thing to do.

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr jitstress 20250311.2

Failed tests:

coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked jitstress2_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked disabler2r @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked tailcallstress @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwA7FB0944wB72B0A2DuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwA7FB0944pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/12/2025 5:54:18 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwA7FB0944wB72B0A2DeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@AndyAyersMS
Copy link
Member

I tried enabling EH logging but it's not verbose enough to spot the problem. It seems almost like the runtime thinks the method has no EH at all or is skipping the frame... at least I don't see it enumerating and rejecting the clauses.

TID 3428: Setting EH clause #0 for Test35000::TestEntryPoint
TID 3428:     Flags         : 0x00000000  ->  0x00000000
TID 3428:     TryOffset     : 0x000000ba  ->  0x000000ba (startpc)
TID 3428:     TryLength     : 0x000000d2  ->  0x000000d2 (endpc)
TID 3428:     HandlerOffset : 0x000000f7  ->  0x000000f7
TID 3428:     HandlerLength : 0x00000110  ->  0x00000110
TID 3428:     ClassToken    : 0x0100000e  ->  0x0100000e
TID 3428:     FilterOffset  : 0x0100000e  ->  0x0100000e
TID 3428: EHWatsonBucketTracker::Init - initializing watson bucket tracker (0097DC50)
TID 3428: EHWatsonBucketTracker::Init - initializing watson bucket tracker (0097DC50)
TID 3428: CPFH_RealFirstPassHandler: looking for handler bottom 0, top ffffffff
TID 3428: STACKWALK: considering resync from pContext(0097DF7C), fault(C0000005), sp(0097E484);                  pStartFrame(00000000); cf.pFrame(FFFFFFFF), cf.SP(00000000)
TID 3428: ExInfoWalker::WalkOne: advancing ExInfo chain: pExInfo:00BCE440, pContext:0097DF7C; prev:00000000, pContext:00000000
TID 3428: StackTraceInfo::AppendElement IP = 08BA5C52, SP = 0097E484, Test35000::TestEntryPoint
TID 3428: EHWatsonBucketTracker::SaveIpForUnhandledInfo  - this = 00BCE470, IP = 08BA5C52
TID 3428: EHWatsonBucketTracker::ClearWatsonBucketDetails for tracker (00BCE470)
TID 3428: EHWatsonBucketTracker::Init - initializing watson bucket tracker (00BCE470)
TID 3428: StackTraceInfo::AppendElement IP = 08BA5B2D, SP = 0097E4BC, __GeneratedMainWrapper::Main
TID 3428: COMPlusThrowCallback: Found match for typed handler.
TID 3428: CPFH_RealFirstPassHandler: set pSearchBoundary to 0xFFFFFFFF
TID 3428: CPFH_RealFirstPassHandler: handler found: Main

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr gcstress-extra 20250312.1

Failed tests:

coreclr windows x86 Checked heapverify1 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB7C40986wAB180974uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwB7C40986pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/13/2025 6:00:42 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB7C40986wAB180974eRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@AndyAyersMS
Copy link
Member

@janvorli would appreciate if you could help us figure out whether the proposed fix (nop padding for a call at the end of a try with a disjoint catch) is the right fix.

@janvorli
Copy link
Member

@AndyAyersMS I am aware of this issue, but since it is x86 stuff that I haven't seen for quite some time, I need to refresh my memory on that. I hope to be able to look into it later today or on Monday the latest.

@JulieLeeMSFT
Copy link
Member

SPMI collect pipelines failed due to this issue. 20250309.1

  • coreclr windows x86 Checked @ Windows.10.Amd64.X86.Rt
  • coreclr windows x86 Checked no_tiered_compilation @ Windows.10.Amd64.X86.Rt

@janvorli
Copy link
Member

I tried enabling EH logging but it's not verbose enough to spot the problem. It seems almost like the runtime thinks the method has no EH at all or is skipping the frame... at least I don't see it enumerating and rejecting the clauses.

If the instruction pointer is out of a try region range, EH would not consider the clauses belonging to that try range. Do I understand it correctly that before there was a jmp after the call that was covered by the try range and now there is nothing and the try region just ends with the call?

@amanasifkhalid
Copy link
Member

amanasifkhalid commented Mar 14, 2025

Do I understand it correctly that before there was a jmp after the call that was covered by the try range and now there is nothing and the try region just ends with the call?

That's correct. It sounds like the fix can be pretty targeted: If the last block in a try region ends with a call instruction, and that block falls into the next block, we need to emit a NOP.

@janvorli do we need to handle any of the other cases we handle on x64? For example, if a catch region ends with a call, or if a try region has a call instruction right before entering a nested try region, etc.

@janvorli
Copy link
Member

Have you tried to dump the EH info for the method? Using sos, you can disass the method and include ehinfo using !u /ehinfo <address>. Here is how x86 checks if an offset in the function does not fall into a try range:

if ( (offs < EHClause.TryStartPC) ||
(offs > EHClause.TryEndPC) ||
(offs == EHClause.TryStartPC && start_adjust) ||
(offs == EHClause.TryEndPC && end_adjust))
continue;

So, offs that is equal to TryEndPC is considered to be in the try range unless the end_adjust is set, which happens when the current method is on top of the stack, that means it is the one currently being executed. In other words, if the throw was right in that method and not in a callee. The offs is a diff between a possibly adjusted Eip and the start address of the method. That adjustment should move the Eip back by 1 in case it is not in the topmost frame. As you can see, there are two adjustments happening here.
But overall it seems to me that adding a NOP should not be needed and it should work thanks to the adjustments. I need to step through the code in the crashing test to see what's going on w.r.t. the offsets.

@janvorli
Copy link
Member

What are the DOTNET_XXX settings necessary to reliably repro the issue? I have tried without any and then with DOTNET_TieredCompilation=0 and it didn't repro for me.

@janvorli
Copy link
Member

Ah, maybe I need a checked build, I've tried it with debug

@AndyAyersMS
Copy link
Member

Yeah this repros for me with checked build and no DOTNET settings.

@janvorli
Copy link
Member

I was able to repro it, there is a bug, adding the NOP would just hide it. There are two things that we decoded incorrectly and that lead to the fact that we don't take the offset after the call into account:

  • The pCF->hasFaulted is set. However, the null reference occurred in a VSD dispatch stub, so we have adjusted the context back to the managed caller, but forgotten to clear the hasFaulted. hasFaulted should be only set if the current frame has caused a hardware exception.
  • The pCf->IsActiveFunc() returns true as if the exception occurred in the managed function. That means that the check I've mentioned above doesn't consider the offs at TryEndPC as being in the try range. That again is likely caused by us pretending that the exception occurred in the managed function.

@amanasifkhalid amanasifkhalid added area-ExceptionHandling-coreclr and removed area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Mar 17, 2025
@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr ilasm 20250315.1

Failed tests:

coreclr windows x86 Checked ilasmroundtrip @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwA8FF09C5wB1E4095EuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Writing PDB file: C:hwA8FF09C5wB1E4095EeRegressionscoreclrGitHub_35000	est35000	est35000.pdb
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0& A_2)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr r2r-extra 20250316.1

Failed tests:

R2R-CG2 windows x86 Checked jitstressregs8 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitstressregs2 @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitstress2_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked jitminopts @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
R2R-CG2 windows x86 Checked gcstress0xc @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB00509B6wA09E08F7uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
test35000.dll
TestLibrary.dll
        2 file(s) copied.
 4:06:44.16
Response file: C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp
C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000IL-CG2	est35000.dll
-o:C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB00509B6pSystem.*.dll
-r:C:hwB00509B6pMicrosoft.*.dll
-r:C:hwB00509B6p\xunit.*.dll
-r:C:hwB00509B6pmscorlib.dll
-r:C:hwB00509B6p
etstandard.dll
"Running CrossGen2:  "C:hwB00509B6pcrossgen2crossgen2.exe" @"C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp"   -r:C:hwB00509B6wA09E08F7eRegressionsRegressionsIL-CG2*.dll  -r:C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll
"Running R2RDump:  "dotnet" "C:hwB00509B6p
2rdump
2rdump.dll" --header --sc --in C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll --out C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000	est35000.dll.r2rdump --val"
 4:06:44.62
 4:06:44.62
Response file: C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp
C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000IL-CG2TestLibrary.dll
-o:C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwB00509B6pSystem.*.dll
-r:C:hwB00509B6pMicrosoft.*.dll
-r:C:hwB00509B6p\xunit.*.dll
-r:C:hwB00509B6pmscorlib.dll
-r:C:hwB00509B6p
etstandard.dll
"Running CrossGen2:  "C:hwB00509B6pcrossgen2crossgen2.exe" @"C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp"   -r:C:hwB00509B6wA09E08F7eRegressionsRegressionsIL-CG2*.dll  -r:C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
"Running R2RDump:  "dotnet" "C:hwB00509B6p
2rdump
2rdump.dll" --header --sc --in C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll --out C:hwB00509B6wA09E08F7eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.r2rdump --val"
 4:06:45.23
 "C:hwB00509B6pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/17/2025 4:06:43 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB00509B6wA09E08F7eRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at Xunit.Assert.True(Boolean condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 123
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr r2r 20250317.1

Failed tests:

R2R-CG2 windows x86 Checked @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwA52508F2wA5E608C0uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
test35000.dll
TestLibrary.dll
        2 file(s) copied.
 7:14:18.92
Response file: C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp
C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000IL-CG2	est35000.dll
-o:C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwA52508F2pSystem.*.dll
-r:C:hwA52508F2pMicrosoft.*.dll
-r:C:hwA52508F2p\xunit.*.dll
-r:C:hwA52508F2pmscorlib.dll
-r:C:hwA52508F2p
etstandard.dll
"Running CrossGen2:  "C:hwA52508F2pcrossgen2crossgen2.exe" @"C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll.rsp"   -r:C:hwA52508F2wA5E608C0eRegressionsRegressionsIL-CG2*.dll  -r:C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll
"Running R2RDump:  "dotnet" "C:hwA52508F2p
2rdump
2rdump.dll" --header --sc --in C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll --out C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000	est35000.dll.r2rdump --val"
 7:14:19.35
 7:14:19.35
Response file: C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp
C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000IL-CG2TestLibrary.dll
-o:C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
--targetarch:x86
--targetos:windows
--verify-type-and-field-layout
--method-layout:random
-r:C:hwA52508F2pSystem.*.dll
-r:C:hwA52508F2pMicrosoft.*.dll
-r:C:hwA52508F2p\xunit.*.dll
-r:C:hwA52508F2pmscorlib.dll
-r:C:hwA52508F2p
etstandard.dll
"Running CrossGen2:  "C:hwA52508F2pcrossgen2crossgen2.exe" @"C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.rsp"   -r:C:hwA52508F2wA5E608C0eRegressionsRegressionsIL-CG2*.dll  -r:C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000IL-CG2*.dll"
Emitting R2R PE file: C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll
"Running R2RDump:  "dotnet" "C:hwA52508F2p
2rdump
2rdump.dll" --header --sc --in C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll --out C:hwA52508F2wA5E608C0eRegressionscoreclrGitHub_35000	est35000TestLibrary.dll.r2rdump --val"
 7:14:19.92
 "C:hwA52508F2pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/18/2025 7:14:18 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwA52508F2wA5E608C0eRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr jitstress 20250318.1

Failed tests:

coreclr windows x86 Checked disabler2r @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwB2DA0957wADB5092FuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hwB2DA0957pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/19/2025 5:38:50 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hwB2DA0957wADB5092FeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr jitstress 20250319.1

Failed tests:

coreclr windows x86 Checked disabler2r @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd
coreclr windows x86 Checked jitstress1_tiered @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hw9F3D0933wBF9E09FBuploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION
 "C:hw9F3D0933pcorerun.exe" -p "System.Reflection.Metadata.MetadataUpdater.IsSupported=false" -p "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true"  test35000.dll 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test35000.TestEntryPoint()
   at __GeneratedMainWrapper.Main()
Expected: 100
Actual: 101
END EXECUTION - FAILED
FAILED
Test failed. Trying to see if dump file was created in C:cores since 3/20/2025 6:24:50 AM
Test Harness Exitcode is : 1
To run the test:
Set up CORE_ROOT and run.
> C:hw9F3D0933wBF9E09FBeRegressionsRegressions../coreclr/GitHub_35000/test35000/test35000.cmd

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)

janvorli added a commit to janvorli/runtime that referenced this issue Mar 21, 2025
When a NULL reference exception occurs in a JIT helper or a VSD stub,
runtime pretends the exception occured in the managed caller. There is a
bug on x86 Windows where the COMPlusThrowCallback considers that frame
to be the frame where the exception actually occurred (based on the
m_crawl.isFirst). In case the call to the helper is the last instruction
in a try region, the exception handler lookup would reject that address
and the exception may not get handled at the right place or at all.

This change fixes it by ensuring that the m_crawl.isFirst is not set
when the frame is not the frame of the failure.

Close dotnet#113106
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Mar 21, 2025
@v-wenyuxu
Copy link
Author

Failed in: runtime-coreclr ilasm 20250322.1

Failed tests:

coreclr windows x86 Checked ilasmroundtrip @ Windows.10.Amd64.Open
    - Regressions/coreclr/GitHub_35000/test35000/test35000.cmd

Error message:

 
Return code:      1
Raw output file:      C:hwAE5A0955wB5AD09F1uploadscoreclrGitHub_35000	est35000output.txt
Raw output:
BEGIN EXECUTION

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.dll'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�TestData0
Class 3:	Test35000�TestData1
Class 4:	__GeneratedMainWrapper

Emitting fields and methods:
Global 	
Class 1	Methods: 2;	
Class 2	Methods: 2;	
Class 3	Methods: 2;	
Class 4	Methods: 2;	
Resolving local member refs: 4 -> 4 defs, 0 refs, 0 unresolved

Emitting events and properties:
Global 	
Class 1	
Class 2	
Class 3	
Class 4	
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Writing PDB file: C:hwAE5A0955wB5AD09F1eRegressionscoreclrGitHub_35000	est35000	est35000.pdb
Operation completed successfully

.NET IL Assembler.  Version 10.0.0-ci
Copyright (c) Microsoft Corporation.  All rights reserved.
Assembling 'IL-RT	est35000.il'  to EXE --> 'test35000.pdb'
Source file is UNICODE

Assembled method Test35000?TestData0::MyMethod
Assembled method Test35000?TestData0::.ctor
Assembled method Test35000?TestData1::MyMethod
Assembled method Test35000?TestData1::.ctor
Assembled method Test35000::TestEntryPoint
Assembled method Test35000::.ctor
Assembled method __GeneratedMainWrapper::Main
Assembled method __GeneratedMainWrapper::.ctor
Creating PE file

Emitting classes:
Class 1:	Test35000
Class 2:	Test35000�

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 141
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix)
   at Program.<<Main>$>g__TestExecutor55|0_56(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0& A_2)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-x86 area-ExceptionHandling-coreclr blocking-outerloop Blocking the 'runtime-coreclr outerloop' and 'runtime-libraries-coreclr outerloop' runs in-pr There is an active PR which will close this issue when it is merged os-windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants