Skip to content

Etched 5.1.0 - Radio blocks the client main thread indefinitely (permanent freeze game) #223

Description

@Ronalonis

RadioBlockEntity opens a network audio stream synchronously on the client main thread. When the remote endpoint accepts the TCP connection but never delivers data, the main thread parks forever inside AsyncInputStream. and the game becomes permanently unresponsive.

There is no crash, no exception and no crash report — Windows eventually terminates the process and logs Application Hang (Event ID 1002). This makes the issue very hard to diagnose from logs alone; the client log simply stops mid-line.

Critically, no player interaction is required. Merely loading a chunk that contains a radio block with a bad URL is enough to freeze every client that comes within render distance. On a multiplayer server, a single misconfigured radio block placed by any player can repeatedly hang other players.

Environment
Etched - 5.1.0
Minecraft - 1.21.1
Loader - NeoForge 21.1.244
Java - 21.0.7 (Microsoft), Windows 10 x64
Context - Multiplayer, ~300 mod pack

Symptoms
Client freezes hard; window becomes "Not Responding" and never recovers.
No crash report and no hs_err_pid*.log is produced.
latest.log ends abruptly on an unrelated line.
Windows Application log records Application Hang, Event ID 1002, javaw.exe, hang type Unknown.
The server sees the client drop with Connection reset by peer a few minutes later, once the OS kills the process.

Reproduction
Place a radio block and set its URL to an endpoint that completes the TCP handshake but never sends response data (a black-holed host, a dead stream, or a deliberately stalling endpoint).
Leave the area so the chunk unloads.
Re-enter render distance of that chunk (flying in quickly makes this trivial to hit).
The client freezes as soon as the block entity ticks for the first time.

Root cause (presumably)
I attached a txt file that AI ​​wrote about problem, maybe this will help
etched-hang-report-rootcause.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions