Skip to content

fix(network): preserve native sessions during asset prompts - #14

Open
AlexProgrammerDE wants to merge 1 commit into
ViaVersionAddons:mainfrom
StackAnvil:codex/bedrock-resource-timeout
Open

AlexProgrammerDE wants to merge 1 commit into
ViaVersionAddons:mainfrom
StackAnvil:codex/bedrock-resource-timeout

Conversation

@AlexProgrammerDE

Copy link
Copy Markdown
Collaborator

Remove Minecraft's application read timeout from direct RakNet and NetherNet connections. Resource consent can pause decoded game packets for more than thirty seconds while the native transport remains connected.

RakNet retains its session and connection timeouts. NetherNet retains its handshake deadline and native closure handling. TCP connections retain their application timeout.

Validation

./gradlew --no-daemon --console=plain clean check build passes.
This standalone patch has no test sources.
The existing patch notes record resource-prompt and transport-liveness comparisons. Those earlier comparisons remain separate from this standalone build.
A fresh in-game comparison with this upstream-only JAR remains pending.

Each PR starts from upstream 14f31f4 and contains one independent change.
The build uses upstream ViaBedrock 0.0.31-SNAPSHOT, resolved as 20261003.172326-5.
No StackAnvil setup patch or local Maven repository enters the build.

The three networking patches touch separate files.
All six application orders pass and produce the same source tree.

Source: owning StackAnvil patch.

Java's application read timeout closes a live Bedrock connection after
thirty seconds while the player answers a resource or Store prompt, or
while licensed built-in assets download. The native transport can remain
healthy without decoded game packets during this phase.

Remove the vanilla application timeout from RakClientChannel and
NetherNetClientChannel connections. RakNet retains its configured session
and connection timeouts. NetherNet retains its handshake deadline and
reliable data-channel close callback. TCP connections keep their handler.
Core cannot change Minecraft's direct channel initialization, so this
integration belongs in the add-on.

The matching reference uses Bedrock 1.26.51.1 build 51061372, protocol
2193, and Java 26.3. Cloudburst's pinned NetherNetChannel closes the Netty
channel when the reliable data channel closes. The macOS report at
https://mclo.gs/2gcbHoK shows completed resource downloads followed thirty
seconds later by application ReadTimeoutException on NetherNet. The
subsequent helper interruption is disconnect cancellation, not evidence
that the helper or launcher failed to start.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants