Uh oh!
There was an error while loading. Please reload this page.
Make sure all new GCDacVars are reported only for v2 - #90043
Conversation
ghost
commented
Aug 4, 2023
Tagging subscribers to this area: @dotnet/gc Issue DetailsIn my earlier PR #88457, I missed a few extra fields in the GcDacVars population which should be v2 as well. This is causing a crash on Linux when a .NET 8 clrgc with regions turned on is loaded in a .NET 6 process.
|
mrsharm
commented
Aug 4, 2023
Adding setting the GCName as libclrgcexp built from .NET8 Release in .NET6 and .NET7 works successfully on a simple GCPerfSim scenario. |
mangod9
commented
Aug 4, 2023
@mrsharm, can you ascertain whether clrgc with regions was actually working with 6? From looking at the change seems like it should be failing too. |
@mangod9, yes, this seems to be working with libclrgc.so (which, is regions for 6.0). Steps
|
In my earlier PR #88457, I missed a few extra fields in the
GcDacVarspopulation which should be v2 as well. This is causing a crash on Linux when a .NET 8clrgcwith regions turned on is loaded in a .NET 6 process.In particular, this line:
, which should not be run on .NET 6, is accidentally overwriting the variable
g_sw_ww_tabledefined below:That leads the write-barrier to write to a bad location and got AV with this output (The user program is a the simple HelloWorld template):