Random parsing/rendering bugs when input arrives slowly #3086
Labels
Area-VT
Virtual Terminal sequence support
Help Wanted
We encourage anyone to jump in on these.
Issue-Bug
It either shouldn't be doing this or needs an investigation.
Product-Conhost
For issues in the Console codebase
Milestone
Environment
Steps to reproduce
This bug sounds similar to #3080 and #3081, but this time all the escape sequences are supported by WT, and I don't have a fully reproducible test case, it all seems random.
Resize the terminal to 28 rows (my default due to bug 2061, nevermind).
Execute this a couple of times:
whereas
slowcat
is shipped with VTE and does exactly what you would think, with the parameter being in microseconds, i.e. prints one byte every 0.2 seconds in the above example; andparsing-delay.txt is the test file stripped down as much as I had patience.
Modify the numeric parameter in the ballpark of 200000 – 350000 (i.e. ~3–5 bytes per second) as you feel like, I have no idea if it influences the behavior, sometimes it feels so but it could just be random. :)
Note that at the end of the command, you're left on the alternate screen. It switches to the normal screen for a short time in the middle and then back to the alternate one.
Expected behavior
The same thing should happen all the time as you repeat this command (except at the first time when you begin on the normal screen), without the spurious random
1
andh
described below.Actual behavior
When switched back to the normal screen for a short time, sometimes a digit
1
appears in the bottom left corner. Even more interestingly, the number of such1
s in that row keeps growing, despite the cursor being explicitly moved to row 28 column 1 every time. (And changing that to column 2 keeps it a digit1
that appears, so it's not where it comes from.)When switched back to the alternate screen, sometimes a letter
h
appears at the top left.Both artifacts occur to me with a probability of perhaps 25–50-ish %. Play with the timing constant if they don't want to appear to you, it might make a difference, I'm not sure.
The text was updated successfully, but these errors were encountered: