[.NET Framework] Windows app crashes when closing
See original GitHub issueHi! We have an app on Windows and see crashes in Avalonia UI when closing it. Is there any limitation on how to correctly close Avalonia app?
Sometimes the crash happens during DispatchClientMessage():
Unhandled exception at 0x00007FF8BF2F4FD9 (KernelBase.dll) in app.exe: 0xC0020001: The string binding is invalid (parameters: 0xFFFFFFFF8007042B).
> KernelBase.dll!RaiseException() Unknown
combase.dll!CStdMarshal::UnmarshalIPID(const _GUID & riid, tagSTDOBJREF * pStd, OXIDEntry * pOXIDEntry, void * * ppv) Line 2686 C++
combase.dll!CStdMarshal::UnmarshalObjRef(tagOBJREF & objref, void * * ppv) Line 2471 C++
combase.dll!UnmarshalSwitch(void * pv) Line 2104 C++
combase.dll!UnmarshalObjRef(tagOBJREF & objref, EffectiveUnmarshalingPolicy policy, void * * ppv, int fBypassActLock, CBaseCall * callMarshalingContext, CStdMarshal * * ppStdMarshal) Line 2253 C++
combase.dll!CAgileReferenceMarshaled::Resolve(const _GUID & riid, void * * ppv) Line 1958 C++
dcomp.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::Foundation::IAsyncActionCompletedHandler::*)(Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::Foundation::IAsyncActionCompletedHandler,Microsoft::WRL::FtmBase>,<lambda_2a41ea20f21462c29868894764bbafd5>,-1,Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus>::Invoke() Unknown
dcomp.dll!Microsoft::WRL::InvokeTraits<-2>::InvokeDelegates<class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>,struct Windows::Foundation::IAsyncActionCompletedHandler>(class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>,class Microsoft::WRL::Details::EventTargetArray *,class Microsoft::WRL::EventSource<struct Windows::Foundation::IAsyncActionCompletedHandler,struct Microsoft::WRL::InvokeModeOptions<-2> > *) Unknown
dcomp.dll!Microsoft::WRL::EventSource<struct Windows::Foundation::IAsyncActionCompletedHandler,struct Microsoft::WRL::InvokeModeOptions<-2> >::DoInvoke<class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f> >(class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>) Unknown
dcomp.dll!<lambda>(void)() Unknown
dcomp.dll!Microsoft::WRL2::ContextSession::LeaveSession_Callback<<lambda>(void)>() Unknown
dcomp.dll!Windows::UI::Composition::Compositor::OnCommitCompletion(void) Unknown
CoreMessaging.dll!Microsoft__CoreUI__Dispatch__WaitCallback$CallbackThunk(class System::Delegate *,struct Microsoft::CoreUI::Dispatch::WaitStatus,struct Microsoft::CoreUI::Support::Win32Handle) Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_DoWork() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_WindowProc() Unknown
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!DispatchClientMessage() Unknown
user32.dll!__fnDWORD() Unknown
ntdll.dll!KiUserCallbackDispatcherContinue() Unknown
win32u.dll!NtUserPeekMessage() Unknown
user32.dll!_PeekMessage() Unknown
user32.dll!PeekMessageW() Unknown
combase.dll!CCliModalLoop::MyPeekMessage(tagMSG * pMsg, HWND__ * hwnd, unsigned int min, unsigned int max, unsigned short wFlag) Line 2925 C++
combase.dll!CCliModalLoop::PeekRPCAndDDEMessage() Line 2607 C++
combase.dll!CCliModalLoop::FindMessage(unsigned long dwStatus) Line 2706 C++
combase.dll!CCliModalLoop::HandleWakeForMsg() Line 2302 C++
combase.dll!CCliModalLoop::BlockFn(void * * ahEvent, unsigned long cEvents, unsigned long * lpdwSignaled) Line 2239 C++
combase.dll!ClassicSTAThreadWaitForHandles(unsigned long dwFlags, unsigned long dwTimeout, unsigned long cHandles, void * * pHandles, unsigned long * pdwIndex) Line 51 C++
combase.dll!CoWaitForMultipleHandles(unsigned long dwFlags, unsigned long dwTimeout, unsigned long cHandles, void * * pHandles, unsigned long * lpdwindex) Line 123 C++
[Managed to Native Transition]
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.RunLoop() Unknown
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.TryCreateAndRegisterCore.AnonymousMethod__0() Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() Unknown
[Native to Managed Transition]
mscorlib.ni.dll!00007ff8790f3e85() Unknown
, or like:
Unhandled exception at 0x00007FF8BF2F4FD9 (KernelBase.dll) in app.exe: 0xC000041D: An unhandled exception was encountered during a user callback.
KernelBase.dll!RaiseException() Unknown
clr.dll!UMThunkStubRareDisableWorker() Unknown
clr.dll!UMThunkStub() Unknown
> user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!DispatchClientMessage() Unknown
user32.dll!__fnINSTRING() Unknown
ntdll.dll!KiUserCallbackDispatcherContinue() Unknown
win32u.dll!NtUserPeekMessage() Unknown
user32.dll!_PeekMessage() Unknown
user32.dll!PeekMessageW() Unknown
combase.dll!CCliModalLoop::MyPeekMessage(tagMSG * pMsg=0x00000000005ff390, HWND__ * hwnd=0x0000000002e50c0a, unsigned int min=0x00000400, unsigned int max=0x00007fff, unsigned short wFlag) Line 2925 C++
combase.dll!CCliModalLoop::PeekRPCAndDDEMessage() Line 2607 C++
combase.dll!CCliModalLoop::FindMessage(unsigned long dwStatus=0x00480040) Line 2706 C++
combase.dll!CCliModalLoop::HandleWakeForMsg() Line 2302 C++
combase.dll!CCliModalLoop::BlockFn(void * * ahEvent=0x00000000007e0760, unsigned long cEvents=0x00000001, unsigned long * lpdwSignaled=0x00000000005ff734) Line 2239 C++
combase.dll!ClassicSTAThreadWaitForHandles(unsigned long dwFlags=0x00000002, unsigned long dwTimeout, unsigned long cHandles=0x00000001, void * * pHandles=0x00000000007e0760, unsigned long * pdwIndex=0x00000000005ff734) Line 51 C++
combase.dll!CoWaitForMultipleHandles(unsigned long dwFlags=0x00000002, unsigned long dwTimeout=0x00013880, unsigned long cHandles=0x00000001, void * * pHandles=0x00000000007e0760, unsigned long * lpdwindex=0x00000000005ff734) Line 123 C++
clr.dll!MsgWaitHelper() Unknown
clr.dll!Thread::DoAppropriateWaitWorker() Unknown
clr.dll!Thread::DoAppropriateWait() Unknown
clr.dll!CLREventBase::WaitEx() Unknown
clr.dll!WaitForEndOfShutdown_OneIteration() Unknown
clr.dll!WaitForEndOfShutdown(void) Unknown
clr.dll!EEShutDown() Unknown
clr.dll!HandleExitProcessHelper() Unknown
clr.dll!ExternalShutdownHelper() Unknown
mscoreei.dll!RuntimeDesc::ShutdownAllActiveRuntimes(unsigned int,class RuntimeDesc *,enum RuntimeDesc::ShutdownCompatMode) Unknown
mscoree.dll!ShellShim_CorExitProcess() Unknown
app.exe!000000014002c2ed() Unknown
app.exe!000000014002c29d() Unknown
app.exe!000000014002c25b() Unknown
app.exe!00000001400204b0() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
, in other cases it may crash in GC Finalizer Thread:
Unhandled exception at 0x00007FF8BF3CFA32 (KernelBase.dll) in app.exe: 0xC0000602: A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.
Not Flagged > 0x00006CA4 0x00 Worker Thread GC Finalizer Thread dcomp.dll!Microsoft::WRL2::FailFast::Do
KernelBase.dll!RaiseFailFastException() Unknown
dcomp.dll!Microsoft::WRL2::FailFast::Do(struct _EXCEPTION_RECORD *,struct _CONTEXT *,char const *) Unknown
dcomp.dll!Microsoft::WRL2::FailFast::Unexpected(char const *) Unknown
dcomp.dll!Microsoft::WRL2::ContextRuntimeClass::OnFinalRelease_NoLock() Unknown
dcomp.dll!Microsoft::WRL2::NestedComImplements<class Windows::UI::Composition::CompositionPropertyAnimator,struct Windows::UI::Composition::ICompositionAnimatorPartner>::Release(void) Unknown
[Managed to Native Transition]
> Avalonia.MicroCom.dll!Avalonia.MicroCom.MicroComProxyBase.Release() Unknown
Avalonia.MicroCom.dll!Avalonia.MicroCom.MicroComProxyBase.Dispose(bool disposing) Unknown
Avalonia.MicroCom.dll!Avalonia.MicroCom.MicroComProxyBase.~MicroComProxyBase() Unknown
[Native to Managed Transition]
[AppDomain Transition]
[Native to Managed Transition]
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Not Flagged > 0x0000467C 0x00 Worker Thread clr.dll!Thread::intermediateThreadProc() combase.dll!CStdMarshal::UnmarshalIPID
> KernelBase.dll!RaiseException() Unknown
combase.dll!CStdMarshal::UnmarshalIPID(const _GUID & riid, tagSTDOBJREF * pStd=0x0000000036554968, OXIDEntry * pOXIDEntry, void * * ppv=0x000000002900d750) Line 2686 C++
combase.dll!CStdMarshal::UnmarshalObjRef(tagOBJREF & objref={...}, void * * ppv=0x000000002900d750) Line 2471 C++
combase.dll!UnmarshalSwitch(void * pv=0x000000002900d678) Line 2104 C++
combase.dll!UnmarshalObjRef(tagOBJREF & objref={...}, EffectiveUnmarshalingPolicy policy=None, void * * ppv=0x000000002900d750, int fBypassActLock=0x00000000, CBaseCall * callMarshalingContext=0x0000000000000000, CStdMarshal * * ppStdMarshal=0x0000000000000000) Line 2253 C++
combase.dll!CAgileReferenceMarshaled::Resolve(const _GUID & riid={...}, void * * ppv=0x000000002900d750) Line 1958 C++
dcomp.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::Foundation::IAsyncActionCompletedHandler::*)(Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::Foundation::IAsyncActionCompletedHandler,Microsoft::WRL::FtmBase>,<lambda_2a41ea20f21462c29868894764bbafd5>,-1,Windows::Foundation::IAsyncAction *,enum ABI::Windows::Foundation::AsyncStatus>::Invoke() Unknown
dcomp.dll!Microsoft::WRL::InvokeTraits<-2>::InvokeDelegates<class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>,struct Windows::Foundation::IAsyncActionCompletedHandler>(class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>,class Microsoft::WRL::Details::EventTargetArray *,class Microsoft::WRL::EventSource<struct Windows::Foundation::IAsyncActionCompletedHandler,struct Microsoft::WRL::InvokeModeOptions<-2> > *) Unknown
dcomp.dll!Microsoft::WRL::EventSource<struct Windows::Foundation::IAsyncActionCompletedHandler,struct Microsoft::WRL::InvokeModeOptions<-2> >::DoInvoke<class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f> >(class <lambda_7b092faa1549a2ba655c5f4ec7f6f48f>) Unknown
dcomp.dll!<lambda>(void)() Unknown
dcomp.dll!Microsoft::WRL2::ContextSession::LeaveSession_Callback<<lambda>(void)>() Unknown
dcomp.dll!Windows::UI::Composition::Compositor::OnCommitCompletion(void) Unknown
CoreMessaging.dll!Microsoft__CoreUI__Dispatch__WaitCallback$CallbackThunk(class System::Delegate *,struct Microsoft::CoreUI::Dispatch::WaitStatus,struct Microsoft::CoreUI::Support::Win32Handle) Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_DoWork() Unknown
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_WindowProc() Unknown
user32.dll!UserCallWinProcCheckWow() Unknown
user32.dll!DispatchClientMessage() Unknown
user32.dll!__fnDWORD() Unknown
ntdll.dll!KiUserCallbackDispatcherContinue() Unknown
win32u.dll!NtUserPeekMessage() Unknown
user32.dll!_PeekMessage() Unknown
user32.dll!PeekMessageW() Unknown
combase.dll!CCliModalLoop::MyPeekMessage(tagMSG * pMsg=0x000000002900e210, HWND__ * hwnd=0x0000000000000000, unsigned int min=0x000003e0, unsigned int max=0x000003e8, unsigned short wFlag) Line 2925 C++
combase.dll!CCliModalLoop::PeekRPCAndDDEMessage() Line 2607 C++
combase.dll!CCliModalLoop::FindMessage(unsigned long dwStatus=0x00400040) Line 2706 C++
combase.dll!CCliModalLoop::HandleWakeForMsg() Line 2302 C++
combase.dll!CCliModalLoop::BlockFn(void * * ahEvent=0x00000000000f39a0, unsigned long cEvents=0x00000001, unsigned long * lpdwSignaled=0x000000002900e5b4) Line 2239 C++
combase.dll!ClassicSTAThreadWaitForHandles(unsigned long dwFlags=0x00000002, unsigned long dwTimeout, unsigned long cHandles=0x00000001, void * * pHandles=0x00000000000f39a0, unsigned long * pdwIndex=0x000000002900e5b4) Line 51 C++
combase.dll!CoWaitForMultipleHandles(unsigned long dwFlags=0x00000002, unsigned long dwTimeout=0x00013880, unsigned long cHandles=0x00000001, void * * pHandles=0x00000000000f39a0, unsigned long * lpdwindex=0x000000002900e5b4) Line 123 C++
[Managed to Native Transition]
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.RunLoop() Unknown
Avalonia.Win32.dll!Avalonia.Win32.WinRT.Composition.WinUICompositorConnection.TryCreateAndRegisterCore.AnonymousMethod__0() Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() Unknown
[Native to Managed Transition]
mscorlib.ni.dll!00007ff8790f3e85() Unknown
, or:
Unhandled exception at 0x00007FF8BF3CFA32 (KernelBase.dll) in app.exe: 0xC0000602: A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.
KernelBase.dll!RaiseFailFastException() Unknown
dcomp.dll!Microsoft::WRL2::FailFast::Do(struct _EXCEPTION_RECORD *,struct _CONTEXT *,char const *) Unknown
dcomp.dll!Microsoft::WRL2::FailFast::Unexpected(char const *) Unknown
dcomp.dll!Microsoft::WRL2::ContextRuntimeClass::OnFinalRelease_NoLock() Unknown
> dcomp.dll!Microsoft::WRL2::NestedComImplements<class Windows::UI::Composition::CompositionPropertyAnimator,struct Windows::UI::Composition::ICompositionAnimatorPartner>::Release(void) Unknown
00007ff8549e0771() Unknown
00007ff8549e06ca() Unknown
00007ff8549dffe1() Unknown
clr.dll!FastCallFinalizeWorker() Unknown
clr.dll!FastCallFinalize() Unknown
clr.dll!MethodTable::CallFinalizer() Unknown
clr.dll!CallFinalizer() Unknown
clr.dll!FinalizerThread::DoOneFinalization() Unknown
clr.dll!FinalizerThread::FinalizeAllObjects() Unknown
clr.dll!FinalizerThread::FinalizeAllObjects_Wrapper(void *) Unknown
clr.dll!ManagedThreadBase_DispatchInner() Unknown
clr.dll!ManagedThreadBase_DispatchMiddle() Unknown
clr.dll!ManagedThreadBase_DispatchOuter() Unknown
clr.dll!ManagedThreadBase_DispatchInCorrectAD() Unknown
clr.dll!Thread::DoADCallBack() Unknown
clr.dll!ManagedThreadBase_DispatchInner() Unknown
clr.dll!FinalizerThread::DoOneFinalization() Unknown
clr.dll!FinalizerThread::FinalizeAllObjects() Unknown
clr.dll!ManagedThreadBase_DispatchInner() Unknown
clr.dll!ManagedThreadBase_DispatchMiddle() Unknown
clr.dll!ManagedThreadBase_DispatchOuter() Unknown
clr.dll!FinalizerThread::FinalizerThreadStart() Unknown
clr.dll!Thread::intermediateThreadProc(void *) Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Do you have any known problem of this kind?
Avalonia 0.10.13
Linked issues: https://github.com/AvaloniaUI/Avalonia/issues/5380, https://github.com/AvaloniaUI/Avalonia/issues/7574
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:7 (4 by maintainers)
Top Results From Across the Web
NET applications crash at startup - .NET Framework
.NET applications may crash at startup for specific users if the user.config file is corrupt · Symptoms. A user starts a .NET application....
Read more >[Solved] .NET applications crashing
I have this weird problem that almost every .NET application crashes, including .NET Core 3.0. (2.2 runs fine).
Read more >What would cause ANY .NET application to crash ...
Make sure the user is not launching the application from a network share. By default, .Net throws a security exception when attempting to...
Read more >My app crashes when closing my seccond window
In the Visual Studio "Exception Settings" window, turn on CLR Exceptions. Then reproduce the issue again to see if you get more info....
Read more >UPDATE Windows 11 KB5014019 fixes .NET Framework 3.5 ...
The May 2022 cumulative update KB5013943 was causing issues for some users (including myself), causing certain apps to crash and failing to ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Hi. Me and @drunkybard found how to fix this issue. Here is pull request: https://github.com/AvaloniaUI/Avalonia/pull/9000 I tested it on 0.10.18 version only.
Also I found that problem with finalizers (#7579) was fixed in latest skia release (https://github.com/mono/SkiaSharp/commit/dc54fa5cddc2f2f8089c851e1752a490a9072d7e), so updating skia references helps. Probably workarounds with suppressing finalizers of SKObjects can be rolled back when they will not be needed after update.
Hi! Do you have any updates on this? cc @kekekeks