SessionReader reads fragmented data and blocks indefinitely #20
Reference in New Issue
Block a user
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?
Bug Report
Environment
4430ddb0f3, but still relevant15.7.1 (24G231))25 (java 25 2025-09-16 LTS)9.3.1Summary
The server expects each request to have the following format:
If a request violating this format is recieved, all future recieved requests are fragmented.
Expected Behavior
The SessionReader should throw an exception when the request is fragmented.
Actual Behavior
The
SessionReaderblocks until another request is recieved so that the remaining bytes can be read.Luckly this only affects one client and all later components should be able to handle malformed data.
Even invalid data should only entail the crash of this specific
SessionReaderthread.Steps to Reproduce
git checkout 4b187fac27461ea958f8254fd8a81e4d8a09599c)Stack Trace / Error Message
Relevant log output from the server:
Possible Cause / Notes
Used implementation of TcpClient:
Possible solutions could be to add an checksum after the payload.
If the calculated checksum mismatches with the recieved, the connection could be closed.
Checklist
added 5m of time spent at 2026-03-25 12:00:00 +0100
added 15m of time spent at 2026-03-26 12:00:00 +0100