FAForever / java-ice-adapter

A P2P connection proxy for Supreme Commander: Forged Alliance using ICE
MIT License
5 stars 12 forks source link

Recover connectivity check from telemetry websocket disconnects #50

Closed Brutus5000 closed 10 months ago

Brutus5000 commented 10 months ago

Sample log from test game now:

09:09:47.230 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:48.231 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:49.231 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:49.306 [WebSocketConnectReadThread-177] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket closed (reason: )
09:09:50.232 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:50.232 [sendingLoop] WARN  c.f.i.d.TelemetryDebugger - Telemetry websocket is closed
09:09:50.396 [WebSocketConnectReadThread-341] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket closed (reason: Invalid status code received: 404 Status line: HTTP/1.1 404 Not Found)
09:09:50.396 [sendingLoop] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket reconnected
09:09:50.396 [sendingLoop] ERROR c.f.i.d.TelemetryDebugger - Error on sending message object: UpdatePeerConnectivity[messageId=a4241c5d-6cba-44ee-85d1-b860f7cfe7c4, peerPlayerId=7982, averageRTT=2.3868756, lastReceived=2023-11-17T08:09:49.238Z]
org.java_websocket.exceptions.WebsocketNotConnectedException: null
    at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:673)
    at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:649)
    at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:431)
    at com.faforever.iceadapter.debug.TelemetryDebugger.sendingLoop(TelemetryDebugger.java:116)
    at java.base/java.lang.Thread.run(Thread.java:833)
09:09:51.232 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:51.232 [sendingLoop] WARN  c.f.i.d.TelemetryDebugger - Telemetry websocket is closed
09:09:51.390 [WebSocketConnectReadThread-343] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket closed (reason: Invalid status code received: 404 Status line: HTTP/1.1 404 Not Found)
09:09:51.390 [sendingLoop] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket reconnected
09:09:51.390 [sendingLoop] ERROR c.f.i.d.TelemetryDebugger - Error on sending message object: UpdatePeerConnectivity[messageId=98e7e338-f09b-486c-b2d5-33900d8db538, peerPlayerId=7982, averageRTT=1.9095005, lastReceived=2023-11-17T08:09:50.232Z]
org.java_websocket.exceptions.WebsocketNotConnectedException: null
    at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:673)
    at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:649)
    at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:431)
    at com.faforever.iceadapter.debug.TelemetryDebugger.sendingLoop(TelemetryDebugger.java:116)
    at java.base/java.lang.Thread.run(Thread.java:833)
09:09:52.232 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:52.233 [sendingLoop] WARN  c.f.i.d.TelemetryDebugger - Telemetry websocket is closed
09:09:52.862 [WebSocketConnectReadThread-345] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket opened
09:09:52.862 [sendingLoop] INFO  c.f.i.d.TelemetryDebugger - Telemetry websocket reconnected
09:09:53.233 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:54.233 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:55.233 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:56.234 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker
09:09:57.234 [connectivityChecker-7982] INFO  c.f.i.i.PeerConnectivityCheckerModule - Running connectivity checker

Test scenario: I restart the ICE adapter during runtime. I'm not sure why the exception appears twice though. Probably the timeout until ICE adapter is back online and traefik stops sending 404.