mirror of
https://github.com/anomalyco/opentui.git
synced 2026-04-25 04:55:58 +03:00
[GH-ISSUE #639] hang on Linux when threading is enabled #174
Labels
No labels
bug
core
documentation
feature
good first issue
help wanted
pull-request
question
react
solid
tmux
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/opentui#174
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bienzaaron on GitHub (Feb 7, 2026).
Original GitHub issue: https://github.com/anomalyco/opentui/issues/639
Not sure exactly what's going on, but after
94f1b8a0a1, I get a never-ending hang when launching any of the examples. I have tokill -9 <pid>to recover, the tui becomes completely unresponsive.system info
If it's helpful, here's some output from me poking around in
lldb@simonklee commented on GitHub (Feb 7, 2026):
Thanks for reporting - i'll have a look.
@bienzaaron commented on GitHub (Feb 7, 2026):
bt all output
@simonklee commented on GitHub (Feb 7, 2026):
Backtraced it to Zig's LinuxThreadImpl.spawn (mem.alignForward assert with invalid TLS alignment), then panic reporting itself segfaults in posix.getenv. I'll continue for a bit, but most likely revert #624.
@simonklee commented on GitHub (Feb 7, 2026):
Think it has to do with how Bun loads things and libc-less threading path in Zig that assumes TLS runtime state (std.os.linux.tls.area_desc) is initialized by Zig startup code. It's not a renderer logic issue. it's a runtime/build-mode interaction between Zig threading/TLS/error-tracing and Bun-loaded shared libraries on Linux issue.
Why it looked like a hang: renderer sets renderInProgress = true, expects worker thread to clear it; when spawn/runtime fails, that never happens, so main thread blocks forever in writeOut/capability handling.