Screen rendering locks up under extreme stdout/stderr load
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 65.1k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Description
Discord username (optional)
aremmell
Describe the bug
I develop a library that among other things, does formatted logging to stdout/stderr. My test rig has a --perf flag, which causes it to log millions of lines as fast as possible while keeping track of elapsed time.
Warp is the first emulator that I have encountered (and I have tested them all) that will not show any of the output until all of the lines have been written (I see a beach ball and no output for 5-6 seconds), then some output will start to appear once things slow down. The history is there–if I scroll up, my data is in the backlog, but it just doesn't scroll by on the screen while it's actively writing to the console.
To reproduce
If you would like to repro for yourself (I will be surprised if this is the first report you're getting of this nature):
git clone https://github.com/aremmell/libsir.gitcd libsir && make tests && build/bin/sirtests --perf
Expected behavior
stdout output immediately begins scrolling by (very quickly)
Screenshots
It is running in this screenshot; the beach ball isn't visible, but it would be if I could move the mouse and take a screenshot at the same time:
Operating system
MacOS
Operating system and version
13.5.1
Shell Version
zsh 5.9 (x86_64-apple-darwin22.0)
Current Warp version
v0.2023.08.29.08.04.stable_00
Regression
No, this bug or issue has existed throughout my experience using Warp
Recent working Warp date
n/a
Additional context
No response
Does this block you from using Warp daily?
No
Is this a Warp specific issue? (i.e. does it happen in Terminal, iTerm, Kitty, etc.)
Yes, this I confirmed this only happens in Warp, not other terminals.
Warp Internal (ignore): linear-label:b8107fdf-ba31-488d-b103-d271c89cac3e
None
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the reported reproduction, build/bin/sirtests --perf, after building libsir with make tests, and observe Warp's terminal output while stdout/stderr are saturated. Trace the terminal output and screen-rendering entry points; done means output begins scrolling promptly without locking up, while retaining the full history.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100