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 DataContractSerializerTests.DCS_MyPersonSurrogate_Stress #67410

Closed
VincentBu opened this issue Apr 1, 2022 · 5 comments · Fixed by #67884
Closed

Test failure DataContractSerializerTests.DCS_MyPersonSurrogate_Stress #67410

VincentBu opened this issue Apr 1, 2022 · 5 comments · Fixed by #67884
Assignees
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro)
Milestone

Comments

@VincentBu
Copy link
Contributor

Run: runtime-coreclr libraries-jitstress 20220331.1

Failed test:

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress2_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-windows-Release-x64-CoreCLR_checked-jitstress1_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress1_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-windows-Release-x64-CoreCLR_checked-jitstress2_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

Error message:

System.NullReferenceException : Object reference not set to an instance of an object.


Stack trace
   at DataContractSerializerTests.DCS_MyPersonSurrogate_Stress() in /_/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializerStressTests.cs:line 56
@VincentBu VincentBu added os-linux Linux OS (any supported distro) JitStress CLR JIT issues involving JIT internal stress modes arch-x64 labels Apr 1, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI untriaged New issue has not been triaged by the area owner labels Apr 1, 2022
@ghost
Copy link

ghost commented Apr 1, 2022

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

Issue Details

Run: runtime-coreclr libraries-jitstress 20220331.1

Failed test:

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress2_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-windows-Release-x64-CoreCLR_checked-jitstress1_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress1_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-windows-Release-x64-CoreCLR_checked-jitstress2_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

Error message:

System.NullReferenceException : Object reference not set to an instance of an object.


Stack trace
   at DataContractSerializerTests.DCS_MyPersonSurrogate_Stress() in /_/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializerStressTests.cs:line 56
Author: VincentBu
Assignees: -
Labels:

os-linux, JitStress, arch-x64, area-CodeGen-coreclr, untriaged

Milestone: -

@JulieLeeMSFT JulieLeeMSFT removed the untriaged New issue has not been triaged by the area owner label Apr 4, 2022
@JulieLeeMSFT JulieLeeMSFT added this to the 7.0.0 milestone Apr 4, 2022
@AndyAyersMS
Copy link
Member

AndyAyersMS commented Apr 8, 2022

Seems plausible this is OSR related as the test method contains a few loops.

But I can't repro this at c288acd so perhaps it's fixed by one of the OSR fixes I pushed yesterday today ? Going to try some older builds to see.

@AndyAyersMS
Copy link
Member

Can repro on windows x64 at ade99ed.

Via COMPlus_JitEnablePatchpointRange isolation, the issue seems to be in

Compiling 4253 System.Runtime.Serialization.ReflectionReader::ReadCollectionItems, IL size = 262, hash=0x7b7b033c Tier1-OSR @0x65 JitStress
Compiling 4255 System.Runtime.Serialization.ReflectionReader::ReadCollectionItems, IL size = 262, hash=0x7b7b033c Tier1-OSR @0x65 JitStress

@AndyAyersMS
Copy link
Member

JitStress=2 here forces a no-way fallback so we rejit the OSR method with minopts.

*** forcing no-way fallback -- current jit request will be abandoned ***

so presumably there's some bad interaction of minopts and OSR to sort out.

@VincentBu
Copy link
Contributor Author

Failed again in: runtime-coreclr libraries-jitstress 20220410.1

Failed test:

net7.0-windows-Release-x64-CoreCLR_checked-jitstress1_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress1_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-Linux-Release-x64-CoreCLR_checked-jitstress2_tiered-Ubuntu.1804.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

net7.0-windows-Release-x64-CoreCLR_checked-jitstress2_tiered-Windows.10.Amd64.Open

- DataContractSerializerTests.DCS_MyPersonSurrogate_Stress

Error message:

System.NullReferenceException : Object reference not set to an instance of an object.


Stack trace
   at DataContractSerializerTests.DCS_MyPersonSurrogate_Stress() in /_/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializerStressTests.cs:line 56
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.RuntimeMethodInfo.InvokeNonEmitUnsafe(Object obj, IntPtr* arguments, Span`1 argsForTemporaryMonoSupport, BindingFlags invokeAttr)

AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this issue Apr 12, 2022
If a Tier0 method has shadowed parameters, the patchpoint info it creates
must refer to the stack slots for the shadow copies. Otherwise any updates
made to the params by the Tier0 code will not be seen by the OSR method.

Fixes dotnet#67410.
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Apr 12, 2022
AndyAyersMS added a commit that referenced this issue Apr 12, 2022
If a Tier0 method has shadowed parameters, the patchpoint info it creates
must refer to the stack slots for the shadow copies. Otherwise any updates
made to the params by the Tier0 code will not be seen by the OSR method.

Fixes #67410.
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Apr 12, 2022
@ghost ghost locked as resolved and limited conversation to collaborators May 12, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-x64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants