CommonLibSSE icon indicating copy to clipboard operation
CommonLibSSE copied to clipboard

Access Violation in RegistrationSetBase dtor on game exit

Open SteveTownsend opened this issue 4 years ago • 0 comments

Had to remove RAII usage of this class to avoid an AV when game is closing down. The VM seems non-viable for cleanup of this class. I have a work-round (don't use RAII, just let them leak on exit, who cares?) but for other use cases this might matter.

In general, there does not seem to be a good pattern for DLL resource cleanup - I also had to revert to using the VM to manage this part of my mod's lifecycle. I don't think this is fixable unless there is some event OnGameExit or similar, I just found it interesting.

Code comment on the fix I made is below:

/* do not clean this class up: SKSE::RegistrationSetBase::~Impl (?) faults per https://github.com/SteveTownsend/SmartHarvestSE/issues/200
* 
From Map file
	0001:0009a310       ??1RegistrationSetBase@Impl@SKSE@@QEAA@XZ 000000018009b310 f   CommonLibSSE:RegistrationSet.obj

WER output crash address:
	Sig[3].Value=SmartHarvestSE.dll
	Sig[6].Name=Exception Code
	Sig[6].Value=c0000005
	Sig[7].Name=Exception Offset
	Sig[7].Value=000000000009b343
*/

SteveTownsend avatar Sep 03 '20 15:09 SteveTownsend