Crash on shutdown #15084

Open
opened 2026-01-31 04:28:11 +00:00 by claunia · 0 comments
Owner

Originally created by @jasonmalinowski on GitHub (Sep 3, 2021).

Windows Terminal version (or Windows build number)

1.9.1942.0

Other Software

No response

Steps to reproduce

I was closing the terminal and it crashed. It doesn't seem to be a consistent repro. Feedback link is available here: https://aka.ms/AAdoyjj. I have a dump I can also share internally. The stack:

Unhandled exception at 0x00007FFE8ED53AE6 (Windows.UI.Xaml.dll) in WindowsTerminal.dmp: 0xC0000005: Access violation reading location 0x000001C241023000.
Windows.UI.Xaml.dll!std::pair<void *,ctl::WeakRefPtr>::operator=<std::pair<void *,ctl::WeakRefPtr>,0>(std::pair<void *,ctl::WeakRefPtr> && _Right) Line 198	C++
Windows.UI.Xaml.dll!std::_Move_unchecked<std::pair<void *,ctl::WeakRefPtr> *,std::pair<void *,ctl::WeakRefPtr> *>(std::pair<void *,ctl::WeakRefPtr> * _First, std::pair<void *,ctl::WeakRefPtr> * _Last, std::pair<void *,ctl::WeakRefPtr> * _Dest) Line 2086	C++
[Inline Frame] Windows.UI.Xaml.dll!std::vector<std::pair<void *,ctl::WeakRefPtr>,std::allocator<std::pair<void *,ctl::WeakRefPtr>>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<std::pair<void *,ctl::WeakRefPtr>>>>) Line 1212	C++
[Inline Frame] Windows.UI.Xaml.dll!containers::detail::vector_tree<containers::detail::map_traits<void *,ctl::WeakRefPtr,std::less<void>,std::allocator<std::pair<void *,ctl::WeakRefPtr>>,0>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<std::pair<void *,ctl::WeakRefPtr>>>>) Line 306	C++
Windows.UI.Xaml.dll!DirectUI::DXamlCore::UnregisterLayoutUpdatedEventSource(DirectUI::FrameworkElement * pFrameworkElement) Line 1887	C++
Windows.UI.Xaml.dll!DirectUI::FrameworkElement::remove_LayoutUpdated(EventRegistrationToken tToken) Line 962	C++
Microsoft.Terminal.Control.dll!winrt::impl::event_revoker<winrt::Windows::UI::Xaml::IFrameworkElement,&winrt::impl::abi<winrt::Windows::UI::Xaml::IFrameworkElement,void>::type::`vcall'{400}'>::~event_revoker<winrt::Windows::UI::Xaml::IFrameworkElement,&winrt::impl::abi<winrt::Windows::UI::Xaml::IFrameworkElement,void>::type::`vcall'{400}'>() Line 5522	C++
Microsoft.Terminal.Control.dll!winrt::Microsoft::Terminal::Control::implementation::TermControl::~TermControl() Line 521	C++
Microsoft.Terminal.Control.dll!winrt::Microsoft::Terminal::Control::implementation::TermControl::`scalar deleting destructor'(unsigned int)	C++
Microsoft.Terminal.Control.dll!winrt::impl::produce_base<winrt::Microsoft::Terminal::Control::implementation::TermControl,winrt::Microsoft::Terminal::Control::ITermControl,void>::Release() Line 6874	C++
[Inline Frame] Windows.UI.Xaml.dll!ctl::release_interface(DirectUI::DependencyObject * &) Line 137	C++
Windows.UI.Xaml.dll!DirectUI::DependencyObject::ReleaseForPeerReferenceHelper() Line 2641	C++
Windows.UI.Xaml.dll!DirectUI::DependencyObject::ClearPeerReferences() Line 748	C++
Windows.UI.Xaml.dll!DirectUI::DependencyObject::DisconnectFrameworkPeerCore() Line 493	C++
Windows.UI.Xaml.dll!DirectUI::DependencyObject::DisconnectFrameworkPeer(unsigned int bFinalRelease) Line 547	C++
Windows.UI.Xaml.dll!DirectUI::DependencyObject::EndShutdown() Line 639	C++
Windows.UI.Xaml.dll!DirectUI::DXamlCore::ShutdownAllPeers() Line 1812	C++
Windows.UI.Xaml.dll!DirectUI::DXamlCore::CommonShutdown() Line 862	C++
Windows.UI.Xaml.dll!DirectUI::DXamlCore::DeinitializeInstance() Line 973	C++
Windows.UI.Xaml.dll!DirectUI::DXamlCore::Deinitialize(DeinitializationType deinitializeType) Line 2958	C++
Windows.UI.Xaml.dll!DirectUI::WindowsXamlManager::XamlCore::Close() Line 282	C++
[Inline Frame] Windows.UI.Xaml.dll!DirectUI::WindowsXamlManager::EnqueueClose::__l2::<lambda_6689f931d1d2ff748962254369ea1967>::operator()() Line 242	C++
Windows.UI.Xaml.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::System::IDispatcherQueueHandler::*)(void)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::System::IDispatcherQueueHandler,Microsoft::WRL::FtmBase>,<lambda_6689f931d1d2ff748962254369ea1967> &,-1>::Invoke() Line 245	C++
CoreMessaging.dll!Windows::System::DispatcherQueue::DeferInvokeCallback(void * userInfo) Line 893	C++
CoreMessaging.dll!System__Action$CallbackThunk(System::Delegate * _cn_pDelegate) Line 505	C++
[Inline Frame] CoreMessaging.dll!System::Action::Invoke() Line 91	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch() Line 62	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch() Line 337	C++
[Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::Dispatcher::DispatchNextItem() Line 892	C++
[Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::Dispatcher::Callback_DispatchLoop(Microsoft::CoreUI::Dispatch::RunnablePriorityMask allowedPriorities) Line 465	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop(Microsoft::CoreUI::Dispatch::RunMode mode, bool ignoreOuterLoop, bool & stopping) Line 779	C++
[Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapterBase::DrainCoreMessagingQueue(Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority) Line 674	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch(bool handlingCompletion, Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority priority, System::IntPtr & sessionExportAdapter) Line 224	C++
[Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatchRaw(System::IntPtr) Line 153	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_DoWork(Microsoft::CoreUI::Dispatch::UserData * userData, Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority priority, bool handlingCompletion) Line 424	C++
CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_WindowProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 659	C++
user32.dll!UserCallWinProcCheckWow(_ACTIVATION_CONTEXT * pActCtx, __int64(*)(tagWND *, unsigned int, unsigned __int64, __int64) pfn, HWND__ * hwnd, _WM_VALUE msg, unsigned __int64 wParam, __int64 lParam, void * fEnableLiteHooks, int) Line 280	C++
user32.dll!DispatchMessageWorker(tagMSG * pmsg, int fAnsi) Line 3157	C++
Microsoft.Toolkit.Win32.UI.XamlHost.dll!winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication::Close() Line 75	C++
Microsoft.Toolkit.Win32.UI.XamlHost.dll!winrt::impl::produce<winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication,winrt::Windows::Foundation::IClosable>::Close() Line 1080	C++
WindowsTerminal.exe!winrt::impl::consume_Windows_Foundation_IClosable<winrt::TerminalApp::App>::Close() Line 120	C++
WindowsTerminal.exe!AppHost::~AppHost() Line 96	C++
WindowsTerminal.exe!wWinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, wchar_t * __formal, int __formal) Line 177	C++
[Inline Frame] WindowsTerminal.exe!invoke_main() Line 118	C++
WindowsTerminal.exe!__scrt_common_main_seh() Line 288	C++
kernel32.dll!BaseThreadInitThunk(unsigned long RunProcessInit, long(*)(void *) StartAddress, void * Argument) Line 64	C
ntdll.dll!RtlUserThreadStart(long(*)(void *) StartAddress, void * Argument) Line 1153	C

Expected Behavior

No response

Actual Behavior

Crashed on close.

Originally created by @jasonmalinowski on GitHub (Sep 3, 2021). ### Windows Terminal version (or Windows build number) 1.9.1942.0 ### Other Software _No response_ ### Steps to reproduce I was closing the terminal and it crashed. It doesn't seem to be a consistent repro. Feedback link is available here: https://aka.ms/AAdoyjj. I have a dump I can also share internally. The stack: ``` Unhandled exception at 0x00007FFE8ED53AE6 (Windows.UI.Xaml.dll) in WindowsTerminal.dmp: 0xC0000005: Access violation reading location 0x000001C241023000. Windows.UI.Xaml.dll!std::pair<void *,ctl::WeakRefPtr>::operator=<std::pair<void *,ctl::WeakRefPtr>,0>(std::pair<void *,ctl::WeakRefPtr> && _Right) Line 198 C++ Windows.UI.Xaml.dll!std::_Move_unchecked<std::pair<void *,ctl::WeakRefPtr> *,std::pair<void *,ctl::WeakRefPtr> *>(std::pair<void *,ctl::WeakRefPtr> * _First, std::pair<void *,ctl::WeakRefPtr> * _Last, std::pair<void *,ctl::WeakRefPtr> * _Dest) Line 2086 C++ [Inline Frame] Windows.UI.Xaml.dll!std::vector<std::pair<void *,ctl::WeakRefPtr>,std::allocator<std::pair<void *,ctl::WeakRefPtr>>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<std::pair<void *,ctl::WeakRefPtr>>>>) Line 1212 C++ [Inline Frame] Windows.UI.Xaml.dll!containers::detail::vector_tree<containers::detail::map_traits<void *,ctl::WeakRefPtr,std::less<void>,std::allocator<std::pair<void *,ctl::WeakRefPtr>>,0>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<std::pair<void *,ctl::WeakRefPtr>>>>) Line 306 C++ Windows.UI.Xaml.dll!DirectUI::DXamlCore::UnregisterLayoutUpdatedEventSource(DirectUI::FrameworkElement * pFrameworkElement) Line 1887 C++ Windows.UI.Xaml.dll!DirectUI::FrameworkElement::remove_LayoutUpdated(EventRegistrationToken tToken) Line 962 C++ Microsoft.Terminal.Control.dll!winrt::impl::event_revoker<winrt::Windows::UI::Xaml::IFrameworkElement,&winrt::impl::abi<winrt::Windows::UI::Xaml::IFrameworkElement,void>::type::`vcall'{400}'>::~event_revoker<winrt::Windows::UI::Xaml::IFrameworkElement,&winrt::impl::abi<winrt::Windows::UI::Xaml::IFrameworkElement,void>::type::`vcall'{400}'>() Line 5522 C++ Microsoft.Terminal.Control.dll!winrt::Microsoft::Terminal::Control::implementation::TermControl::~TermControl() Line 521 C++ Microsoft.Terminal.Control.dll!winrt::Microsoft::Terminal::Control::implementation::TermControl::`scalar deleting destructor'(unsigned int) C++ Microsoft.Terminal.Control.dll!winrt::impl::produce_base<winrt::Microsoft::Terminal::Control::implementation::TermControl,winrt::Microsoft::Terminal::Control::ITermControl,void>::Release() Line 6874 C++ [Inline Frame] Windows.UI.Xaml.dll!ctl::release_interface(DirectUI::DependencyObject * &) Line 137 C++ Windows.UI.Xaml.dll!DirectUI::DependencyObject::ReleaseForPeerReferenceHelper() Line 2641 C++ Windows.UI.Xaml.dll!DirectUI::DependencyObject::ClearPeerReferences() Line 748 C++ Windows.UI.Xaml.dll!DirectUI::DependencyObject::DisconnectFrameworkPeerCore() Line 493 C++ Windows.UI.Xaml.dll!DirectUI::DependencyObject::DisconnectFrameworkPeer(unsigned int bFinalRelease) Line 547 C++ Windows.UI.Xaml.dll!DirectUI::DependencyObject::EndShutdown() Line 639 C++ Windows.UI.Xaml.dll!DirectUI::DXamlCore::ShutdownAllPeers() Line 1812 C++ Windows.UI.Xaml.dll!DirectUI::DXamlCore::CommonShutdown() Line 862 C++ Windows.UI.Xaml.dll!DirectUI::DXamlCore::DeinitializeInstance() Line 973 C++ Windows.UI.Xaml.dll!DirectUI::DXamlCore::Deinitialize(DeinitializationType deinitializeType) Line 2958 C++ Windows.UI.Xaml.dll!DirectUI::WindowsXamlManager::XamlCore::Close() Line 282 C++ [Inline Frame] Windows.UI.Xaml.dll!DirectUI::WindowsXamlManager::EnqueueClose::__l2::<lambda_6689f931d1d2ff748962254369ea1967>::operator()() Line 242 C++ Windows.UI.Xaml.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl Windows::System::IDispatcherQueueHandler::*)(void)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,Windows::System::IDispatcherQueueHandler,Microsoft::WRL::FtmBase>,<lambda_6689f931d1d2ff748962254369ea1967> &,-1>::Invoke() Line 245 C++ CoreMessaging.dll!Windows::System::DispatcherQueue::DeferInvokeCallback(void * userInfo) Line 893 C++ CoreMessaging.dll!System__Action$CallbackThunk(System::Delegate * _cn_pDelegate) Line 505 C++ [Inline Frame] CoreMessaging.dll!System::Action::Invoke() Line 91 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch() Line 62 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch() Line 337 C++ [Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::Dispatcher::DispatchNextItem() Line 892 C++ [Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::Dispatcher::Callback_DispatchLoop(Microsoft::CoreUI::Dispatch::RunnablePriorityMask allowedPriorities) Line 465 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop(Microsoft::CoreUI::Dispatch::RunMode mode, bool ignoreOuterLoop, bool & stopping) Line 779 C++ [Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapterBase::DrainCoreMessagingQueue(Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority) Line 674 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch(bool handlingCompletion, Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority priority, System::IntPtr & sessionExportAdapter) Line 224 C++ [Inline Frame] CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatchRaw(System::IntPtr) Line 153 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_DoWork(Microsoft::CoreUI::Dispatch::UserData * userData, Microsoft::CoreUI::Dispatch::UserAdapterBase__UserPriority priority, bool handlingCompletion) Line 424 C++ CoreMessaging.dll!Microsoft::CoreUI::Dispatch::UserAdapter_WindowProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 659 C++ user32.dll!UserCallWinProcCheckWow(_ACTIVATION_CONTEXT * pActCtx, __int64(*)(tagWND *, unsigned int, unsigned __int64, __int64) pfn, HWND__ * hwnd, _WM_VALUE msg, unsigned __int64 wParam, __int64 lParam, void * fEnableLiteHooks, int) Line 280 C++ user32.dll!DispatchMessageWorker(tagMSG * pmsg, int fAnsi) Line 3157 C++ Microsoft.Toolkit.Win32.UI.XamlHost.dll!winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication::Close() Line 75 C++ Microsoft.Toolkit.Win32.UI.XamlHost.dll!winrt::impl::produce<winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication,winrt::Windows::Foundation::IClosable>::Close() Line 1080 C++ WindowsTerminal.exe!winrt::impl::consume_Windows_Foundation_IClosable<winrt::TerminalApp::App>::Close() Line 120 C++ WindowsTerminal.exe!AppHost::~AppHost() Line 96 C++ WindowsTerminal.exe!wWinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, wchar_t * __formal, int __formal) Line 177 C++ [Inline Frame] WindowsTerminal.exe!invoke_main() Line 118 C++ WindowsTerminal.exe!__scrt_common_main_seh() Line 288 C++ kernel32.dll!BaseThreadInitThunk(unsigned long RunProcessInit, long(*)(void *) StartAddress, void * Argument) Line 64 C ntdll.dll!RtlUserThreadStart(long(*)(void *) StartAddress, void * Argument) Line 1153 C ``` ### Expected Behavior _No response_ ### Actual Behavior Crashed on close.
claunia added the Resolution-DuplicateSeverity-Crash labels 2026-01-31 04:28:11 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#15084