question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[.NET Framework] Windows app crashes when closing

See original GitHub issue

Hi! 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:closed
  • Created a year ago
  • Reactions:1
  • Comments:7 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
HermanKirshincommented, Sep 21, 2022

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.

0reactions
k15tfucommented, Jun 29, 2022

Hi! Do you have any updates on this? cc @kekekeks

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found