-
Notifications
You must be signed in to change notification settings - Fork 8.5k
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 in Windows Terminal TerminalControl!TextBuffer::Reflow #4907
Comments
Finger-in-the-air guess is P3: if this only reproduces when you're murdering your terminal by resizing it multiple times a second while printing megabytes of output, I'm going to say it won't strike too many people too often. It's still worth fixing. |
I can't repro this on v0.11.1212, even resizing like mad with five open panes printing our 6MB test file simultaneously. I'm gonna call this one no-repro. @Treit please let me know if you can still repro! |
@DHowett-MSFT Yes I can still reproduce it on 0.11.1212.0 |
@DHowett-MSFT here is a brief video I just made demonstrating how I reproduced the issue on 0.11.1212.0: |
Perfect. Thank you. |
The problem is, as always, double-width characters. Somehow, the source buffer (during the reflow operation) is getting a hanging DBCS Trailing character that we dutifully try to reflect into the new buffer. |
In fact it is powerleve9k, default setup nothing fancy.
@DHowett-MSFT Since the other issue has been closed I replying here. For me the problems started with 7ae3433 probably because ✔ has been made wide. To summarize my problems:
I initially though that crashes and other issues are related, but while they are introduced by the same commit for me, it looks like they are separate problems. We might reopen my issue for drawing problems and discuss crash in this one. |
So @kasper93, we fixed the width of ✔ at least! This bug'll remain to track the resizing issue 😄 |
Fixing as part of MSFT-17364373, which is a conhost crash that hits moderately often (~500 hits in the past 14 days!) |
…rately high-hitting Watsons This commit fixes two issues: 1. We were pushing ConsoleWaitBlocks into the wait queue before they were fully constructed. This resulted in the wait being called before it even had an API message in it. [MSFT-24113101] 2. Drawing DBCS characters and resizing (a lot) would cause a crash because of an invalid DBCS cell state. This hits in both Terminal and conhost. [MSFT-17364373] [GH-4907] The DBCS state check was promoted from an NT_ASSERT (which never fired in release) to a FAIL_FAST in !1794053. The console kept chugging along without failing in fre for all those years. Fixes MSFT-24113101 Fixes MSFT-17364373 Fixes GH-4907 Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 108e746630749aa7851dd813b19e013ae31ef0db (cherry picked from commit 8e7a866)
🎉 Handy links: |
🎉 Handy links: |
…rately high-hitting Watsons This commit fixes two issues: 1. We were pushing ConsoleWaitBlocks into the wait queue before they were fully constructed. This resulted in the wait being called before it even had an API message in it. [MSFT-24113101] 2. Drawing DBCS characters and resizing (a lot) would cause a crash because of an invalid DBCS cell state. This hits in both Terminal and conhost. [MSFT-17364373] [microsoftGH-4907] The DBCS state check was promoted from an NT_ASSERT (which never fired in release) to a FAIL_FAST in !1794053. The console kept chugging along without failing in fre for all those years. Fixes MSFT-24113101 Fixes MSFT-17364373 Fixes microsoftGH-4907 Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 108e746630749aa7851dd813b19e013ae31ef0db
While running a stress test on Windows Terminal version 0.10.721.0, I was able to cause a crash in TerminalControl!TextBuffer::Reflow.
I was running https://github.com/Treit/TerminalStress, the application I wrote some time back to reproduce a different bug (that was since fixed.)
I was running something like 5 instances in parallel in different panes on the same tab, then rapidly pressing Alt+Enter to switch from full screen to normal and back.
WindowsTerminal11.txt
I have attached some additional output from the debugger that might be helpful.
The text was updated successfully, but these errors were encountered: