microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.48k stars 8.31k forks source link

Crash report #18084

Open justanotheranonymoususer opened 1 week ago

justanotheranonymoususer commented 1 week ago

Windows Terminal version

1.20.11781.0

Windows build number

10.0.22631.4317

Other Software

No response

Steps to reproduce

Not sure how to repro, I had this crash multiple times, got me by surprise because I had some batch working and I didn't understand where it went.

I suspect it's related to quake mode (Win+`) which was also difficult to disable, no option in the gui, had to edit json.

The terminal sometimes can run important jobs, if it's killed, it'd be better to have it relaunch or at least reopen in the old cmd, but not kill the underlying job only because some gui failed.

Expected Behavior

No response

Actual Behavior

Crash stack trace, I hope it's enough to understand the problem.

 # Child-SP          RetAddr               Call Site
00 00000018`92aff3d0 00007ff7`986743d6     ntdll!RtlAcquireSRWLockExclusive+0x10
01 (Inline Function) --------`--------     WindowsTerminal!winrt::slim_mutex::lock+0x9 [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\base.h @ 1615] 
02 (Inline Function) --------`--------     WindowsTerminal!winrt::slim_lock_guard::{ctor}+0x9 [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\base.h @ 1659] 
03 00000018`92aff440 00007ff7`98677016     WindowsTerminal!winrt::event<winrt::delegate<void __cdecl(winrt::Microsoft::Terminal::Remoting::SummonWindowSelectionArgs)> >::operator()<winrt::Microsoft::Terminal::Remoting::SummonWindowSelectionArgs>+0x3e [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\base.h @ 6036] 
04 00000018`92aff480 00007ff7`98656235     WindowsTerminal!NotificationIcon::MenuItemSelected+0x2b2 [C:\__w\1\s\src\cascadia\WindowsTerminal\NotificationIcon.cpp @ 234] 
05 (Inline Function) --------`--------     WindowsTerminal!WindowEmperor::_messageHandler+0x16c76 [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 450] 
06 00000018`92aff560 00007ffc`3ddd83f1     WindowsTerminal!WindowEmperor::_wndProc+0x16cb5 [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 386] 
07 00000018`92aff5e0 00007ffc`3ddd7eb1     user32!UserCallWinProcCheckWow+0x2d1
08 00000018`92aff740 00007ffc`1e6840ca     user32!DispatchMessageWorker+0x1f1
0a (Inline Function) --------`--------     WindowsTerminal!WindowEmperor::WaitForWindows+0x4c [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 128] 
0b 00000018`92aff7f0 00007ff7`9863e2a6     WindowsTerminal!WindowEmperor::HandleCommandlineArgs+0x520 [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 102] 
0c 00000018`92affad0 00007ff7`986427f2     WindowsTerminal!wWinMain+0x166 [C:\__w\1\s\src\cascadia\WindowsTerminal\main.cpp @ 118] 
0d (Inline Function) --------`--------     WindowsTerminal!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
0e 00000018`92affbb0 00007ffc`3d94257d     WindowsTerminal!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
0f 00000018`92affbf0 00007ffc`3e1eaf08     kernel32!BaseThreadInitThunk+0x1d
10 00000018`92affc20 00000000`00000000     ntdll!RtlUserThreadStart+0x28
zadjii-msft commented 1 week ago

That looks like a crash when using the "tray icon". Any chance you were using that feature/?

Could you try Terminal Preview 1.22, and see if that fixes this? IIRC there were some stability improvements to the way multiple windows are handled since 1.20. I suspect that might help mitigate this issue.

note to self: You're not on Windows 10, so it's not refrigeration related.

justanotheranonymoususer commented 1 week ago

I don't think I touched the tray icon on the first crash. Now I checked the crashes again and I see that the first crash was indeed different. The second crash, which is what I posted, was after I tried to reproduce, so I clicked the tray icon as well, maybe it's a different issue.

First crash is here:

Null deref: Maybe _rootGrid nullptr here? https://github.com/microsoft/terminal/blob/3a06826915d11ee2124de9b35e42300e1c3f68d5/src/cascadia/WindowsTerminal/IslandWindow.cpp#L1339

WindowsTerminal!winrt::impl::consume_Windows_UI_Xaml_IDependencyObject<winrt::Windows::UI::Xaml::Controls::Grid>::Dispatcher+0x83:
00007ff7`98670b7b 488b01          mov     rax,qword ptr [rcx] ds:00000000`00000000=????????????????
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ff798670b7b (WindowsTerminal!winrt::impl::consume_Windows_UI_Xaml_IDependencyObject<winrt::Windows::UI::Xaml::Controls::Grid>::Dispatcher+0x0000000000000083)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000000
   Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000

Call stack:

 # Child-SP          RetAddr               Call Site
00 0000005d`ced3efb0 00007ff7`9864b7e3     WindowsTerminal!winrt::impl::consume_Windows_UI_Xaml_IDependencyObject<winrt::Windows::UI::Xaml::Controls::Grid>::Dispatcher+0x83 [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.UI.Xaml.h @ 895] 
01 0000005d`ced3f020 00007ff7`9864b6f9     WindowsTerminal!IslandWindow::SummonWindow$_ResumeCoro$1+0x63 [C:\__w\1\s\src\cascadia\WindowsTerminal\IslandWindow.cpp @ 1330] 
02 0000005d`ced3f080 00007ff7`9864b958     WindowsTerminal!IslandWindow::SummonWindow$_InitCoro$2+0x69
03 0000005d`ced3f0d0 00007ff7`9866bfcb     WindowsTerminal!IslandWindow::SummonWindow+0x58
04 0000005d`ced3f1b0 00007ff7`98669a77     WindowsTerminal!AppHost::_HandleSummon+0x4b [C:\__w\1\s\src\cascadia\WindowsTerminal\AppHost.cpp @ 929] 
05 (Inline Function) --------`--------     WindowsTerminal!winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable>::{ctor}::__l1::<lambda_309_>::operator()+0x16 [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.Foundation.h @ 2488] 
06 0000005d`ced3f220 00007ffc`0eb5aa56     WindowsTerminal!winrt::impl::delegate<winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable>,`winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable>::IInspectable<AppHost,void (__cdecl AppHost::*)(winrt::Windows::Foundation::IInspectable const &,winrt::Windows::Foundation::IInspectable const &)>'::`1'::<lambda_309_> >::Invoke+0x37 [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.Foundation.h @ 884] 
07 0000005d`ced3f270 00007ffc`0eb5a611     Microsoft_Terminal_Remoting!winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior>::operator()+0x42 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Windows.Foundation.h @ 2525] 
08 0000005d`ced3f2c0 00007ffc`0eb59e77     Microsoft_Terminal_Remoting!winrt::impl::invoke<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior>,winrt::Microsoft::Terminal::Remoting::implementation::Peasant,winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior>+0x31 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\base.h @ 5890] 
09 0000005d`ced3f2f0 00007ffc`0eb5c38b     Microsoft_Terminal_Remoting!winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior> >::operator()<winrt::Microsoft::Terminal::Remoting::implementation::Peasant,winrt::Microsoft::Terminal::Remoting::SummonWindowBehavior>+0x83 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\base.h @ 6043] 
0a 0000005d`ced3f340 00007ffc`0eb5c28f     Microsoft_Terminal_Remoting!winrt::Microsoft::Terminal::Remoting::implementation::Peasant::Summon+0xb3 [C:\__w\1\s\src\cascadia\Remoting\Peasant.cpp @ 148] 
0b 0000005d`ced3f3a0 00007ffc`0eb563ea     Microsoft_Terminal_Remoting!winrt::impl::produce<winrt::Microsoft::Terminal::Remoting::implementation::Peasant,winrt::Microsoft::Terminal::Remoting::IPeasant>::Summon+0x2f [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 1233] 
0c 0000005d`ced3f3e0 00007ffc`0eb5667c     Microsoft_Terminal_Remoting!winrt::impl::consume_Microsoft_Terminal_Remoting_IPeasant<winrt::Microsoft::Terminal::Remoting::IPeasant>::Summon+0x42 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 295] 
0d 0000005d`ced3f430 00007ffc`0eb5650f     Microsoft_Terminal_Remoting!winrt::Microsoft::Terminal::Remoting::implementation::Monarch::SummonWindow+0x124 [C:\__w\1\s\src\cascadia\Remoting\Monarch.cpp @ 919] 
0e 0000005d`ced3f500 00007ffc`0eb5e990     Microsoft_Terminal_Remoting!winrt::impl::produce<winrt::Microsoft::Terminal::Remoting::implementation::Monarch,winrt::Microsoft::Terminal::Remoting::IMonarch>::SummonWindow+0x2f [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 1007] 
0f (Inline Function) --------`--------     Microsoft_Terminal_Remoting!winrt::impl::consume_Microsoft_Terminal_Remoting_IMonarch<winrt::Microsoft::Terminal::Remoting::IMonarch>::SummonWindow+0x38 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 117] 
10 (Inline Function) --------`--------     Microsoft_Terminal_Remoting!winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::SummonWindow+0x49 [C:\__w\1\s\src\cascadia\Remoting\WindowManager.cpp @ 385] 
11 0000005d`ced3f540 00007ff7`9867d61f     Microsoft_Terminal_Remoting!winrt::impl::produce<winrt::Microsoft::Terminal::Remoting::implementation::WindowManager,winrt::Microsoft::Terminal::Remoting::IWindowManager>::SummonWindow+0x50 [C:\__w\1\s\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 1791] 
12 0000005d`ced3f590 00007ff7`9867df04     WindowsTerminal!winrt::impl::consume_Microsoft_Terminal_Remoting_IWindowManager<winrt::Microsoft::Terminal::Remoting::IWindowManager>::SummonWindow+0x3f [C:\__w\1\s\src\cascadia\WindowsTerminal\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 707] 
13 0000005d`ced3f5e0 00007ff7`9865621c     WindowsTerminal!WindowEmperor::_hotkeyPressed+0x204 [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 565] 
14 (Inline Function) --------`--------     WindowsTerminal!WindowEmperor::_messageHandler+0x16c5d [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 426] 
15 0000005d`ced3f670 00007ffc`3ddd83f1     WindowsTerminal!WindowEmperor::_wndProc+0x16c9c [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 386] 
16 0000005d`ced3f6f0 00007ffc`3ddd7eb1     user32!UserCallWinProcCheckWow+0x2d1
17 0000005d`ced3f850 00007ffc`1e6840ca     user32!DispatchMessageWorker+0x1f1
19 (Inline Function) --------`--------     WindowsTerminal!WindowEmperor::WaitForWindows+0x4c [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 128] 
1a 0000005d`ced3f900 00007ff7`9863e2a6     WindowsTerminal!WindowEmperor::HandleCommandlineArgs+0x520 [C:\__w\1\s\src\cascadia\WindowsTerminal\WindowEmperor.cpp @ 102] 
1b 0000005d`ced3fbe0 00007ff7`986427f2     WindowsTerminal!wWinMain+0x166 [C:\__w\1\s\src\cascadia\WindowsTerminal\main.cpp @ 118] 
1c (Inline Function) --------`--------     WindowsTerminal!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
1d 0000005d`ced3fcc0 00007ffc`3d94257d     WindowsTerminal!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
1e 0000005d`ced3fd00 00007ffc`3e1eaf08     kernel32!BaseThreadInitThunk+0x1d
1f 0000005d`ced3fd30 00000000`00000000     ntdll!RtlUserThreadStart+0x28