Skip to content

String buffer overflow on status for long forge modlists #21

@chloeruka

Description

@chloeruka

I'm running an Enigmatica6 server on Forge 1.16.5. FML2 handshakes grow linearly with the mod list as they use it to confirm client compatibility:

❯ docker run -it -e DEBUG=true --rm itzg/mc-monitor status --host [REDACTED] --port 25565
2022-09-20T13:10:25.277Z        DEBUG   mc-monitor/java_status.go:76    pinging
2022-09-20T13:10:25.435Z        DEBUG   mc-monitor/java_status.go:79    ping returned   {"error": "string length out of bounds", "info": null}
failed to ping [REDACTED]:25565 : string length out of bounds%

After flushing this one out for a while, it seems to be that once the handshake reply is beyond math.MaxInt16 or 65535 bytes, mc-pinger breaks and returns a slightly nebulous error. This makes my LivenessProbe fail and I want to use mc-monitor if I can. 😄

I'm mostly writing this issue as documentation of this quirk in case it saves another time-poor weekend server op some time. I have a quick and dirty way of fixing this issue, but it does involve a slightly less obvious change in a forthcoming PR. I'll also try to relay this upstream in case @raqbit feels up to tackling it or can direct us where to help out, though it appears there's some refactoring work that might need to be done.

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