warpdotdev / warpdotdev/warp

Screen rendering locks up under extreme stdout/stderr load

Open
#3,626 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug ready-to-implement triaged
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):

  1. git clone https://github.com/aremmell/libsir.git
  2. cd 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:

Screenshot 2023-09-02 at 14 52 38
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.