Which version of Commons Daemon are you using? Gary
On Fri, May 24, 2019 at 10:33 AM Lode Leroy <[email protected]> wrote: > Hi, > > I see frequent crashes in prunsrv.exe on Windows 10. > > Here is a stack trace from a minidump: > > ntdll.dll!00007ff903af6e1e() Unknown > AcLayers.dll!00007ff87cd77a56() Unknown > prunsrv.exe!HeapFREE(void * hHeap, unsigned long dwFlags, void * > lpMem) Line 71 C > prunsrv.exe!__apxPoolFreeCore(void * lpMem) Line 133 C > prunsrv.exe!apxFree(void * lpMem) Line 402 C > prunsrv.exe!__apxProcessCallback(stAPXHANDLE * hObject, unsigned int > uMsg, unsigned __int64 wParam, __int64 lParam) Line 396 C > prunsrv.exe!apxCloseHandle(stAPXHANDLE * hObject) Line 498 C > prunsrv.exe!__apxPoolCallback(stAPXHANDLE * hObject, unsigned int > uMsg, unsigned __int64 wParam, __int64 lParam) Line 190 C > prunsrv.exe!__apxPoolCallback(stAPXHANDLE * hObject, unsigned int > uMsg, unsigned __int64 wParam, __int64 lParam) Line 184 C > prunsrv.exe!apxCloseHandle(stAPXHANDLE * hObject) Line 498 C > prunsrv.exe!apxHandleManagerDestroy(...) Line 291 C > prunsrv.exe!main(int argc, char * * argv) Line 1830 C > > > I fixed it locally as follows, but I'm not sure if this is a good way to > fix it. > > > diff --git a/windows/src/handles.c b/windows/src/handles.c > index bdd573d..b90f677 100644 > --- a/windows/src/handles.c > +++ b/windows/src/handles.c > @@ -286,6 +286,7 @@ apxHandleManagerDestroy() > > if (--_st_sys_init == 0) { > hHeap = _st_sys_pool->hHeap; > + _st_sys_pool->fnCallback = NULL; > apxCloseHandle(_st_sys_pool); > /* Destroy the main Heap */ > HeapDESTROY(hHeap); > @@ -493,7 +494,8 @@ apxCloseHandle(APXHANDLE hObject) > if (IS_INVALID_HANDLE(hObject) || hObject->dwType == > APXHANDLE_TYPE_INVALID) > return FALSE; > /* Call the user callback first */ > - (*hObject->fnCallback)(hObject, WM_CLOSE, 0, 0); > + if (*hObject->fnCallback) > + (*hObject->fnCallback)(hObject, WM_CLOSE, 0, 0); > /* Now go through the callback chain */ > TAILQ_FOREACH(lpCall, &hObject->lCallbacks, queue) { > (*lpCall->fnCallback)(hObject, WM_CLOSE, 0, 0); >
