Skip to content

fix(input): close idle TCP and stream connections without errors - #472

Merged
timtofan merged 3 commits into
masterfrom
atimofieiev/up-input-idle-timeout
Nov 4, 2026
Merged

timtofan merged 3 commits into
masterfrom
atimofieiev/up-input-idle-timeout

Conversation

@timtofan

@timtofan timtofan commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

Depends on #471

Why

An idle connection reaching its configured read deadline is an expected lifecycle event. Counting that close as a decode error makes input error metrics misleading.

Architecture

The plaintext and stream reader loops recognize timeout errors and return normally. The change is local to input error classification; protocol decoding, routing, admission, and output ownership retain their existing boundaries.

Before / after

Before After
An idle read timeout increments an input error counter An idle read timeout closes the connection normally
A malformed or truncated stream is an input error Malformed and truncated streams remain errors
Points parsed before the timeout are processed Those points still flush normally

Validation

Go 1.27.0, vendored dependencies: build, vet, serialized full tests, and golangci-lint v2 with the upstream configuration. Regression tests cover idle plaintext, idle stream input, and genuine decode failures.

@timtofan
timtofan merged commit dda9bbd into master Nov 4, 2026
4 checks passed
@timtofan
timtofan deleted the atimofieiev/up-input-idle-timeout branch November 4, 2026 13:52
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.

3 participants