Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on exit in NavigationViewItemRevokers::~NavigationViewItemRevokers #12413

Closed
zadjii-msft opened this issue Feb 7, 2022 · 10 comments · Fixed by #12847
Closed

Crash on exit in NavigationViewItemRevokers::~NavigationViewItemRevokers #12413

zadjii-msft opened this issue Feb 7, 2022 · 10 comments · Fixed by #12847
Labels
Area-Settings UI Anything specific to the SUI Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-2 A description (P2) Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. Severity-Crash Crashes are real bad news. Tracking-External This bug isn't resolved, but it's following an external workitem. zPreview-Service-Queued-1.13 A floating label that tracks the current Preview version for servicing purposes. zStable-Service-Queued-1.12 A floating label that tracks the current Stable version for servicing purposes.

Comments

@zadjii-msft
Copy link
Member

Both me and Niksa have hit this on 1.13 so far. Unclear what exactly caused this, or what repro steps are.

Stack
0:000> k
 # Child-SP          RetAddr               Call Site
00 (Inline Function) --------`--------     Windows_UI_Xaml!ctl::ComObjectBase::QueryInterfaceBase+0x9 [onecoreuap\windows\dxaml\xcp\components\com\comobjectbase.cpp @ 36] 
01 00000080`cb6fe7c0 00007ffa`8cc7920f     Windows_UI_Xaml!ctl::ComObject<DirectUI::ListView>::QueryInterface+0x11 [onecoreuap\windows\dxaml\xcp\components\com\inc\ComObject.h @ 36] 
02 00000080`cb6fe7f0 00007ffa`3229f1d7     Windows_UI_Xaml!ctl::Details::WeakReferenceImpl::Resolve+0x4f [onecoreuap\windows\dxaml\xcp\components\com\weakreference.cpp @ 35] 
03 00000080`cb6fe820 00007ffa`3224a933     Microsoft_UI_Xaml!winrt::weak_ref<winrt::Windows::UI::Xaml::DependencyObject>::get+0x3f [C:\a\_work\1\s\BuildOutput\Intermediates\x64\Microsoft.UI.Xaml\obj\Generated Files\winrt\base.h @ 4097] 
04 (Inline Function) --------`--------     Microsoft_UI_Xaml!PropertyChanged_revoker::revoke+0x2a [C:\a\_work\1\s\dev\inc\CppWinRTHelpers.h @ 312] 
05 00000080`cb6fe860 00007ffa`32297266     Microsoft_UI_Xaml!PropertyChanged_revoker::~PropertyChanged_revoker+0x33 [C:\a\_work\1\s\dev\inc\CppWinRTHelpers.h @ 302] 
06 00000080`cb6fe890 00007ffa`32297234     Microsoft_UI_Xaml!NavigationViewItemRevokers::~NavigationViewItemRevokers+0x12
07 00000080`cb6fe8c0 00007ffa`3220adc4     Microsoft_UI_Xaml!winrt::impl::heap_implements<NavigationViewItemRevokers>::`scalar deleting destructor'+0x14
08 (Inline Function) --------`--------     Microsoft_UI_Xaml!winrt::impl::root_implements<winrt::impl::reference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IReference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IPropertyValue>::NonDelegatingRelease+0x5a [C:\a\_work\1\s\BuildOutput\Intermediates\x64\Microsoft.UI.Xaml\obj\Generated Files\winrt\base.h @ 7325] 
09 (Inline Function) --------`--------     Microsoft_UI_Xaml!winrt::impl::root_implements<winrt::impl::reference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IReference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IPropertyValue>::Release+0x5a [C:\a\_work\1\s\BuildOutput\Intermediates\x64\Microsoft.UI.Xaml\obj\Generated Files\winrt\base.h @ 7206] 
0a (Inline Function) --------`--------     Microsoft_UI_Xaml!winrt::implements<winrt::impl::reference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IReference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IPropertyValue>::Release+0x5a [C:\a\_work\1\s\BuildOutput\Intermediates\x64\Microsoft.UI.Xaml\obj\Generated Files\winrt\base.h @ 7802] 
0b 00000080`cb6fe8f0 00007ffa`8cc17cbc     Microsoft_UI_Xaml!winrt::impl::produce_base<winrt::impl::reference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,winrt::Windows::Foundation::IReference<enum winrt::Microsoft::UI::Xaml::Controls::NavigationViewDisplayMode>,void>::Release+0x64 [C:\a\_work\1\s\BuildOutput\Intermediates\x64\Microsoft.UI.Xaml\obj\Generated Files\winrt\base.h @ 6874] 
0c (Inline Function) --------`--------     Windows_UI_Xaml!ctl::release_interface_nonull+0x1a [onecoreuap\windows\dxaml\xcp\components\com\inc\ComUtils.h @ 152] 
0d 00000080`cb6fe920 00007ffa`8cc16752     Windows_UI_Xaml!DirectUI::TrackerTargetReference::Clear+0x24c [onecoreuap\windows\dxaml\xcp\components\lifetime\lib\trackertargetreference.cpp @ 697] 
0e (Inline Function) --------`--------     Windows_UI_Xaml!DirectUI::TrackerPtr<IInspectable,1,0>::Clear+0xd [onecoreuap\windows\dxaml\xcp\components\lifetime\inc\TrackerPtr.h @ 267] 
0f (Inline Function) --------`--------     Windows_UI_Xaml!ctl::WeakReferenceSourceNoThreadId::RemovePtrValue+0x17e [onecoreuap\windows\dxaml\xcp\components\lifetime\inc\WeakReferenceSourceNoThreadId.h @ 233] 
10 00000080`cb6fe9a0 00007ffa`8cc16399     Windows_UI_Xaml!DirectUI::DependencyObject::ClearPeerReferences+0x242 [onecoreuap\windows\dxaml\xcp\dxaml\lib\dependencyobject.cpp @ 757] 
11 00000080`cb6fe9e0 00007ffa`8cbfe400     Windows_UI_Xaml!DirectUI::DependencyObject::DisconnectFrameworkPeerCore+0x29 [onecoreuap\windows\dxaml\xcp\dxaml\lib\dependencyobject.cpp @ 493] 
12 (Inline Function) --------`--------     Windows_UI_Xaml!DirectUI::DependencyObject::DisconnectFrameworkPeer+0x2e [onecoreuap\windows\dxaml\xcp\dxaml\lib\dependencyobject.cpp @ 547] 
13 (Inline Function) --------`--------     Windows_UI_Xaml!DirectUI::DependencyObject::EndShutdown+0x2e [onecoreuap\windows\dxaml\xcp\dxaml\lib\dependencyobject.cpp @ 639] 
14 00000080`cb6fea10 00007ffa`8cbfdb05     Windows_UI_Xaml!DirectUI::DXamlCore::ShutdownAllPeers+0x2a0 [onecoreuap\windows\dxaml\xcp\dxaml\lib\dxamlcore.cpp @ 1891] 
15 00000080`cb6feae0 00007ffa`8cbfadd9     Windows_UI_Xaml!DirectUI::DXamlCore::CommonShutdown+0x1d1 [onecoreuap\windows\dxaml\xcp\dxaml\lib\dxamlcore.cpp @ 925] 
16 00000080`cb6feb50 00007ffa`8cbfa43b     Windows_UI_Xaml!DirectUI::DXamlCore::DeinitializeInstance+0x1a1 [onecoreuap\windows\dxaml\xcp\dxaml\lib\dxamlcore.cpp @ 1039] 
17 00000080`cb6feb80 00007ffa`8cd54b07     Windows_UI_Xaml!DirectUI::DXamlCore::Deinitialize+0x8f [onecoreuap\windows\dxaml\xcp\dxaml\lib\dxamlcore.cpp @ 3105] 
18 00000080`cb6febb0 00007ffa`8ce2c103     Windows_UI_Xaml!DirectUI::WindowsXamlManager::XamlCore::Close+0xd3 [onecoreuap\windows\dxaml\xcp\dxaml\lib\windowsxamlmanager_partial.cpp @ 346] 
19 (Inline Function) --------`--------     Windows_UI_Xaml!DirectUI::WindowsXamlManager::EnqueueClose::__l2::<lambda_7e21289255aaaaf9af46034ad444c7af>::operator()+0x9 [onecoreuap\windows\dxaml\xcp\dxaml\lib\windowsxamlmanager_partial.cpp @ 298] 
1a 00000080`cb6fec10 00007ffa`9b8d6630     Windows_UI_Xaml!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_7e21289255aaaaf9af46034ad444c7af> &,-1>::Invoke+0x13 [onecore\external\sdk\inc\wrl\event.h @ 354] 
1b 00000080`cb6fec40 00007ffa`9b88e214     CoreMessaging!Windows::System::DispatcherQueue::DeferInvokeCallback+0x20 [mincore\coreui\dev\dispatcherqueue\wrtdispatcherqueue.cpp @ 919] 
1c (Inline Function) --------`--------     CoreMessaging!Microsoft::CoreUI::ActionCallback::ImportAdapter$::__l2::<lambda_a81ff790741c2a62f2197c2561f5fe49>::operator()+0x1f [mincore\CoreUI\Dev\System\Api\IExportMessageSession.cs @ 22] 
1d 00000080`cb6fec70 00007ffa`9b88e16e     CoreMessaging!CFlat::SehSafe::Execute<<lambda_a81ff790741c2a62f2197c2561f5fe49> >+0x2c [CFlatCorlib\1.0.211005003\CFlatCorlib\SehSafe.inl @ 11] 
1e 00000080`cb6feca0 00007ffa`9b89d851     CoreMessaging!Microsoft::CoreUI::ActionCallback::ImportAdapter$+0xae [mincore\CoreUI\Dev\System\Api\IExportMessageSession.cs @ 22] 
1f (Inline Function) --------`--------     CoreMessaging!CFlat::DelegateImpl<Microsoft::CoreUI::ActionCallback,0,void __cdecl(void),long __cdecl(void *),0>::Invoke+0x26 [CFlatCorlib\1.0.211005003\CFlatCorlib\Delegate.h @ 337] 
20 00000080`cb6fece0 00007ffa`9b89d50d     CoreMessaging!Microsoft::CoreUI::Dispatch::DeferredCall::Callback_Dispatch+0x2d1 [mincore\CoreUI\Dev\System\Dispatch\DeferredCall.cs @ 62] 
21 00000080`cb6feda0 00007ffa`9b89c784     CoreMessaging!Microsoft::CoreUI::Dispatch::DeferredCallDispatcher::Callback_OnDispatch+0x46d [mincore\CoreUI\Dev\System\Dispatch\DeferredCallDispatcher.cs @ 383] 
22 (Inline Function) --------`--------     CoreMessaging!Microsoft::CoreUI::Dispatch::Dispatcher::Callback_DispatchNextItem+0x4df [mincore\CoreUI\Dev\System\Dispatch\Dispatcher.cs @ 1095] 
23 (Inline Function) --------`--------     CoreMessaging!Microsoft::CoreUI::Dispatch::Dispatcher::Callback_DispatchLoop+0x582 [mincore\CoreUI\Dev\System\Dispatch\Dispatcher.cs @ 541] 
24 00000080`cb6fee50 00007ffa`9b899e5e     CoreMessaging!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop+0x714 [mincore\CoreUI\Dev\System\Dispatch\EventLoop.cs @ 692] 
25 00000080`cb6fef60 00007ffa`9b89938b     CoreMessaging!Microsoft::CoreUI::Dispatch::UserAdapter::DrainCoreMessagingQueue+0x3ee [mincore\CoreUI\Dev\System\Dispatch\UserAdapter.cs @ 780] 
26 (Inline Function) --------`--------     CoreMessaging!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatch+0x10b [mincore\CoreUI\Dev\System\Dispatch\UserAdapter.cs @ 1135] 
27 (Inline Function) --------`--------     CoreMessaging!Microsoft::CoreUI::Dispatch::UserAdapter::OnUserDispatchRaw+0x167 [mincore\CoreUI\Dev\System\Dispatch\UserAdapter.cs @ 1077] 
28 00000080`cb6fefe0 00007ffa`9b896a70     CoreMessaging!Microsoft::CoreUI::Dispatch::UserAdapter::DoWork+0x2fb [mincore\coreui\dev\system\Dispatch\UserAdapterCommonN.cpp @ 214] 
29 00000080`cb6ff070 00007ffa`9f20aa63     CoreMessaging!Microsoft::CoreUI::Dispatch::UserAdapter::WindowProc+0x90 [mincore\coreui\dev\system\Dispatch\UserAdapterCommonN.cpp @ 144] 
2a 00000080`cb6ff0e0 00007ffa`9f20a42c     user32!UserCallWinProcCheckWow+0x4c3 [clientcore\windows\core\ntuser\client\clmsg.cxx @ 282] 
2b 00000080`cb6ff240 00007ffa`9f217d4a     user32!DispatchClientMessage+0x9c [clientcore\windows\core\ntuser\client\daytona\objfre\amd64\client.cxx @ 3113] 
2c 00000080`cb6ff2a0 00007ffa`a1466964     user32!__fnDWORD+0x3a [onecoreuap\restricted\windows\inc\ntuser\inc\ntcb.h @ 1214] 
2d 00000080`cb6ff300 00007ffa`9f1c14d4     ntdll!KiUserCallbackDispatcherContinue [minkernel\ntos\rtl\amd64\trampoln.asm @ 607] 
2e 00000080`cb6ff388 00007ffa`9f212c66     win32u!ZwUserPeekMessage+0x14 [onecoreuap\windows\core\umode\moderncore\objfre\amd64\usrstubs.asm @ 165] 
2f 00000080`cb6ff390 00007ffa`9f212b80     user32!_PeekMessage+0xb6 [clientcore\windows\core\ntuser\client\ntstubs.cxx @ 814] 
30 00000080`cb6ff400 00007ffa`64f21526     user32!PeekMessageW+0x140 [onecoreuap\restricted\windows\inc\private\core\ntuser\client\cltxt.h @ 756] 
31 00000080`cb6ff470 00007ffa`64f239b9     Microsoft_Toolkit_Win32_UI_XamlHost!winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication::Close+0x176 [D:\a\1\s\Microsoft.Toolkit.Win32.UI.XamlApplication\XamlApplication.cpp @ 75] 
32 00000080`cb6ff500 00007ff6`aedb37e3     Microsoft_Toolkit_Win32_UI_XamlHost!winrt::impl::produce<winrt::Microsoft::Toolkit::Win32::UI::XamlHost::implementation::XamlApplication,winrt::Windows::Foundation::IClosable>::Close+0x19 [D:\a\1\s\Microsoft.Toolkit.Win32.UI.XamlApplication\x64\Release\Generated Files\winrt\Windows.Foundation.h @ 1080] 
33 (Inline Function) --------`--------     WindowsTerminal!winrt::impl::consume_Windows_Foundation_IClosable<winrt::TerminalApp::App>::Close+0x45 [C:\a\_work\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.Foundation.h @ 121] 
34 00000080`cb6ff530 00007ff6`aeda1391     WindowsTerminal!AppHost::~AppHost+0x93 [C:\a\_work\1\s\src\cascadia\WindowsTerminal\AppHost.cpp @ 107] 
35 00000080`cb6ff570 00007ff6`aed9be82     WindowsTerminal!wWinMain+0x10221 [C:\a\_work\1\s\src\cascadia\WindowsTerminal\main.cpp @ 199] 
36 (Inline Function) --------`--------     WindowsTerminal!invoke_main+0x21 [d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
37 00000080`cb6ff7a0 00007ffa`a0c71350     WindowsTerminal!__scrt_common_main_seh+0x106 [d:\a01\_work\12\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
38 00000080`cb6ff7e0 00007ffa`a1411e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
39 00000080`cb6ff810 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Feb 7, 2022
@zadjii-msft zadjii-msft added Issue-Bug It either shouldn't be doing this or needs an investigation. Product-Terminal The new Windows Terminal. Severity-Crash Crashes are real bad news. labels Feb 7, 2022
@zadjii-msft zadjii-msft added this to the Terminal v1.14 milestone Feb 7, 2022
@zadjii-msft zadjii-msft added zPreview-Service-Queued-1.13 A floating label that tracks the current Preview version for servicing purposes. and removed Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Feb 7, 2022
@DHowett DHowett added the Area-Settings UI Anything specific to the SUI label Feb 7, 2022
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Feb 7, 2022
@DHowett DHowett added the Priority-1 A description (P1) label Feb 7, 2022
@zadjii-msft zadjii-msft added the Needs-Repro We can't figure out how to make this happen. Please help find a simplified repro. label Feb 8, 2022
@zadjii-msft
Copy link
Member Author

Very tempted to punt this out of the servicing release considering I haven't hit it again yet. If no one sees this again before the end of the week, let's punt out of servicing for now. A crash on exit is sloppy but not that bad.

@zadjii-msft
Copy link
Member Author

Huh. Hit this on 1.12 this morning. Maybe that's where the bug is, not 1.13?

I opened the SUI, navigated a few pages, toggled the use acrylic in titlebar setting, hit save and closed.

Maybe I closed really fast after saving? That could be it....

!analyze says the failure hash is 80dc8625-62e1-606d-fb37-9916b2c24bee, but there aren't any hits for that yet. That's a good thing?

@zadjii-msft zadjii-msft removed the Needs-Repro We can't figure out how to make this happen. Please help find a simplified repro. label Feb 9, 2022
@zadjii-msft
Copy link
Member Author

Okay hit this a few times now.

  • open SUI
  • go to global appearance
  • hit save
  • pretty quickly close the Terminal

I think the reload finishes, because the frame does its little jump in animation

@zadjii-msft
Copy link
Member Author

I'm gonna bump this out of the hotfix queue. It repros pretty consistently, and we should fix it, but it's not that immediate.

@zadjii-msft zadjii-msft added Priority-2 A description (P2) and removed Priority-1 A description (P1) zPreview-Service-Queued-1.13 A floating label that tracks the current Preview version for servicing purposes. labels Feb 14, 2022
@lhecker
Copy link
Member

lhecker commented Feb 22, 2022

Related to MSFT:28297939.

@lhecker
Copy link
Member

lhecker commented Feb 23, 2022

This issue is likely fixed with microsoft/microsoft-ui-xaml#6240, which is part of WinUI 2.8.

@zadjii-msft zadjii-msft added the Tracking-External This bug isn't resolved, but it's following an external workitem. label Feb 23, 2022
@zadjii-msft
Copy link
Member Author

Since this one's fixed upstream and we aren't about to ingest it soon, 🦵🏈

@zadjii-msft zadjii-msft modified the milestones: Terminal v1.14, 22H1 Feb 23, 2022
@zadjii-msft
Copy link
Member Author

I believe this is fixed in microsoft/microsoft-ui-xaml#6797

@zadjii-msft
Copy link
Member Author

Pulling back into 1.14, servicing, because MSFT:28297939 is an ESB bug 😬

@zadjii-msft zadjii-msft added zPreview-Service-Queued-1.13 A floating label that tracks the current Preview version for servicing purposes. zStable-Service-Queued-1.12 A floating label that tracks the current Stable version for servicing purposes. labels Mar 8, 2022
@zadjii-msft zadjii-msft modified the milestones: 22H1, Terminal v1.14 Mar 8, 2022
zadjii-msft added a commit that referenced this issue Mar 8, 2022
@zadjii-msft zadjii-msft added the zInbox-Bug Ignore me! label Mar 10, 2022
@zadjii-msft zadjii-msft removed the zInbox-Bug Ignore me! label Mar 24, 2022
@zadjii-msft zadjii-msft linked a pull request Apr 7, 2022 that will close this issue
@zadjii-msft zadjii-msft added the Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. label Apr 7, 2022
@zadjii-msft
Copy link
Member Author

Fixed in #12847

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Settings UI Anything specific to the SUI Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-2 A description (P2) Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. Severity-Crash Crashes are real bad news. Tracking-External This bug isn't resolved, but it's following an external workitem. zPreview-Service-Queued-1.13 A floating label that tracks the current Preview version for servicing purposes. zStable-Service-Queued-1.12 A floating label that tracks the current Stable version for servicing purposes.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants