VPhysics-Jolt
VPhysics-Jolt copied to clipboard
[GMOD] Crash on server stop (VCollideUnload from CollisionBSPData_Destroy)
There are weird issue when server quitting (with or without players):
ntdll.dll!_RtlpBreakPointHeap@4() Unknown
ntdll.dll!RtlpValidateHeapEntry() Unknown
ntdll.dll!RtlValidateHeap() Unknown
KernelBase.dll!_HeapValidate@12() Unknown
vphysics.dll!_CrtIsValidHeapPointer(const void * block=0x1e213390) Line 1407 C++
vphysics.dll!free_dbg_nolock(void * const block=0x1e213390, const int block_use=49123) Line 904 C++
vphysics.dll!_free_dbg(void * block=0x1e213390, int block_use=-1) Line 1030 C++
vphysics.dll!operator delete(void * block=0x1e213390) Line 34 C++
vphysics.dll!operator delete[](void * block=0x1e213390) Line 31 C++
> vphysics.dll!JoltPhysicsCollision::VCollideUnload(vcollide_t * pVCollide=0x0000bfe3) Line 704 C++
engine.dll!__Z24CollisionBSPData_DestroyP17CCollisionBSPData() Unknown
engine.dll!__Z10CM_FreeMapv() Unknown
engine.dll!__Z15HostState_Framef() Unknown
engine.dll!__ZN7CEngine5FrameEv() Unknown
engine.dll!__ZN19CDedicatedServerAPI8RunFrameEv() Unknown
engine.dll!__ZN18CModAppSystemGroup4MainEv() Unknown
engine.dll!__ZN15CAppSystemGroup3RunEv() Unknown
https://github.com/Joshua-Ashton/VPhysics-Jolt/blob/db13ffba6ee0fa4be75958698565e0edd2139e29/vphysics_jolt/vjolt_collide.cpp#L699-L708
at delete pVCollide->solids[ i ];
pVCollide = 0x1ee09008 {
solidCount = 17
isPacked = 0
descSize = 598
solids = 0x1e798340 {0x1e6f3140 {...}}
pKeyValues = 0x2c221bb0 "staticsolid {\n\"index\" \"0\"\n\"contents\" \"33570827\"\n}\nstaticsolid {\n\"index\" \"1\"\n}\nstaticsolid {\n\"index\" \"2\"\n}\nstaticsolid {\n\"index\" \"3\"\n}\nstaticsolid {\n\"index\" \"4\"\n}\nstaticsolid {\n\"index\" \"5\"\n}\nstaticso...
}
Looks like typical heap corruption
Do you mind testing if #135 fixes this issue, @Draiget?
Do you mind testing if #135 fixes this issue, @Draiget?
Looks fine, don't see corruption anymore there.