itzg / mc-monitor

Monitor the status of Minecraft servers and provides Prometheus exporter and Influx line protocol output
MIT License
234 stars 30 forks source link

Java status needs to continue retries even when network error #83

Closed itzg closed 6 months ago

itzg commented 6 months ago

The openj9 builds of docker-minecraft-server started failing during tests with an error like the following. My guess is that the DNS entry or Docker's DNS is not yet ready on first ping, an error is returned, but the old retry logic was very primitive and just bailed.

failed to ping mc:25565 : could not connect to Minecraft server: dial tcp: lookup mc on 127.0.0.11:53: server misbehaving Container multi-part-motd-monitor-run-7a4475c13f6a  Stopping

This new code uses the avast/retry-go library like other parts of the code already were doing.

Also upgrades Go to 1.22.2

itzg commented 6 months ago

Just noting a more descriptive error seen from an openj9 instance:

2024-04-05T03:02:23.963874547Z [init] Starting the Minecraft server...
2024-04-05T03:02:24.022918338Z Downloading mojang_1.20.4.jar
2024-04-05T03:02:25.411001547Z Applying patches
2024-04-05T03:02:26.783884881Z Failed to patch /META-INF/versions/1.20.4/server-1.20.4.jar
2024-04-05T03:02:26.784018048Z java.io.IOException: block overrun
2024-04-05T03:02:26.784211965Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.getAndMoveToFrontDecode(BZip2CompressorInputStream.java:700)
2024-04-05T03:02:26.784217131Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.initBlock(BZip2CompressorInputStream.java:326)
2024-04-05T03:02:26.784219006Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.setupNoRandPartA(BZip2CompressorInputStream.java:884)
2024-04-05T03:02:26.784220465Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.setupNoRandPartB(BZip2CompressorInputStream.java:933)
2024-04-05T03:02:26.784221756Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.read0(BZip2CompressorInputStream.java:228)
2024-04-05T03:02:26.784222965Z  at paperclip.libs.org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream.read(BZip2CompressorInputStream.java:179)
2024-04-05T03:02:26.784371715Z  at paperclip.libs.io.sigpipe.jbsdiff.Patch.read(Patch.java:139)
2024-04-05T03:02:26.784380298Z  at paperclip.libs.io.sigpipe.jbsdiff.Patch.patch(Patch.java:104)
2024-04-05T03:02:26.784381756Z  at io.papermc.paperclip.PatchEntry.applyPatch(PatchEntry.java:136)
2024-04-05T03:02:26.784383006Z  at io.papermc.paperclip.Paperclip.applyPatches(Paperclip.java:238)
2024-04-05T03:02:26.784384090Z  at io.papermc.paperclip.Paperclip.extractAndApplyPatches(Paperclip.java:156)
2024-04-05T03:02:26.784385256Z  at io.papermc.paperclip.Paperclip.setupClasspath(Paperclip.java:72)
2024-04-05T03:02:26.784386381Z  at io.papermc.paperclip.Paperclip.main(Paperclip.java:28)
2024-04-05T03:02:26.784387506Z  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-04-05T03:02:26.784388673Z  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
2024-04-05T03:02:26.784407673Z  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
2024-04-05T03:02:26.784433381Z  at java.base/java.lang.reflect.Method.invoke(Unknown Source)
2024-04-05T03:02:26.784438756Z  at io.papermc.paperclip.Main.main(Main.java:26)
2024-04-05T03:02:26.788233756Z