Skip to content

Another segfault in gc_heap::get_region_plan_gen_num for a frozen object #63906

@MichalStrehovsky

Description

@MichalStrehovsky

Introduced by enabling regions. Similar to #63778 but won't be fixed with the pull request in flight.

reproNative.exe!WKS::gc_heap::get_region_gen_num(unsigned char * obj) Line 11252  C++
reproNative.exe!WKS::gc_heap::object_gennum(unsigned char * o) Line 10991    C++
reproNative.exe!WKS::GCHeap::WhichGeneration(Object * object) Line 43434    C++
reproNative.exe!HndWriteBarrierWorker(OBJECTHANDLE__ * handle, Object * value) Line 578  C++
reproNative.exe!HndWriteBarrier(OBJECTHANDLE__ * handle, Object * objref) Line 22  C++
reproNative.exe!HndAssignHandle(OBJECTHANDLE__ * handle, Object * objref) Line 47  C++
reproNative.exe!HndCreateHandle(HandleTable * hTable, unsigned int uType, Object * object, unsigned __int64 lExtraInfo) Line 314    C++
reproNative.exe!GCHandleStore::CreateDependentHandle(Object * primary, Object * secondary) Line 49      C++
reproNative.exe!RhpHandleAllocDependent(Object * pPrimary, Object * pSecondary) Line 26      C++
reproNative.exe!S_P_CoreLib_System_Runtime_RuntimeImports__RhHandleAllocDependent() Line 235    Unknown

We’re in get_region_gen_num asking about a frozen object again.

I’ve tried adding an early out to object_gennum (if !is_in_heap_range, return max_generation) and that seems to do the trick, but maybe I’ve just introduced a GC hole, so I’ll better leave that to the GC team.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions