[Open/Need More Info] Guests joining games in progress crash them
-
@Cernel A user without the map (I assume from the immediate leaving of the same) just joined my host, but this time I don't seem to have had any issues.
-
I suspect this could be people with the latest pre-release joining the latest release. IMO we should probably update it so that 1.10 clients do not join the 1.9 lobby.
-
That should be easy to test. I don't want to do it and crash someones game though : )
-
@LaFayette Actually I would suspect it is peeps deliberately crashing the game and have witnessed it myself as well. Generally occurs if they don't have the map or have a really old engine.
-
It just happened. A user joined and left my host immediately, and the game froze, except only that I can still scroll the board.
Console:
giu 16, 2019 4:06:11 AM games.strategy.engine.framework.ServerGame lambda$addObserver$1 GRAVE: Failed to join game java.lang.RuntimeException: Exception on remote at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:54) at com.sun.proxy.$Proxy26.joinGame(Unknown Source) at games.strategy.engine.framework.ServerGame.lambda$addObserver$1(ServerGame.java:205) at java.lang.Thread.run(Unknown Source) Caused by: games.strategy.engine.message.ConnectionLostException: Connection to AnthonyNeyra lost at games.strategy.engine.message.UnifiedMessengerHub.connectionRemoved(UnifiedMessengerHub.java:176) at games.strategy.net.AbstractServerMessenger.notifyConnectionsChanged(AbstractServerMessenger.java:493) at games.strategy.net.AbstractServerMessenger.removeConnection(AbstractServerMessenger.java:655) at games.strategy.net.AbstractServerMessenger.socketError(AbstractServerMessenger.java:672) at games.strategy.net.nio.NioSocket.error(NioSocket.java:91) at games.strategy.net.nio.NioReader.loop(NioReader.java:122) ... 1 more -
Hard to say based on that stack trace, errors in the
unifiedInvocationHandlertend to be compatibility issues. -
Again:
giu 19, 2019 1:00:21 AM games.strategy.engine.framework.ServerGame lambda$addObserver$1 GRAVE: Failed to join game java.lang.RuntimeException: Exception on remote at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:54) at com.sun.proxy.$Proxy26.joinGame(Unknown Source) at games.strategy.engine.framework.ServerGame.lambda$addObserver$1(ServerGame.java:205) at java.lang.Thread.run(Unknown Source) Caused by: games.strategy.engine.message.ConnectionLostException: Connection to dermarc lost at games.strategy.engine.message.UnifiedMessengerHub.connectionRemoved(UnifiedMessengerHub.java:176) at games.strategy.net.AbstractServerMessenger.notifyConnectionsChanged(AbstractServerMessenger.java:493) at games.strategy.net.AbstractServerMessenger.removeConnection(AbstractServerMessenger.java:655) at games.strategy.net.AbstractServerMessenger.socketError(AbstractServerMessenger.java:672) at games.strategy.net.nio.NioSocket.error(NioSocket.java:91) at games.strategy.net.nio.NioReader.loop(NioReader.java:122) ... 1 more -
Again:
lug 02, 2019 9:08:02 PM games.strategy.engine.framework.ServerGame lambda$addObserver$1 GRAVE: Failed to join game java.lang.RuntimeException: Exception on remote at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:54) at com.sun.proxy.$Proxy26.joinGame(Unknown Source) at games.strategy.engine.framework.ServerGame.lambda$addObserver$1(ServerGame.java:205) at java.lang.Thread.run(Unknown Source) Caused by: games.strategy.engine.message.ConnectionLostException: Connection to Zaitsev29 lost at games.strategy.engine.message.UnifiedMessengerHub.connectionRemoved(UnifiedMessengerHub.java:176) at games.strategy.net.AbstractServerMessenger.notifyConnectionsChanged(AbstractServerMessenger.java:493) at games.strategy.net.AbstractServerMessenger.removeConnection(AbstractServerMessenger.java:655) at games.strategy.net.AbstractServerMessenger.socketError(AbstractServerMessenger.java:672) at games.strategy.net.nio.NioSocket.error(NioSocket.java:91) at games.strategy.net.nio.NioReader.loop(NioReader.java:122) ... 1 more -
@LaFayette said in Guests joining games in progress crash them:
I suspect this could be people with the latest pre-release joining the latest release. IMO we should probably update it so that 1.10 clients do not join the 1.9 lobby.
According to this conversation I just had, the latest issue happened when a user having the same version I'm using (1.9.0.0.13066) tried to join my private host without having the map I was playing (270bc_variants).
So I guess this is a pretty major bug that might not be solved by just a new release.Lobby chatlog:
(21.09.41) samstreeter: You were slapped by samstreeter
(21.09.53) samstreeter: its frozen
(21.10.09) Cernel: yes
(21.10.22) Cernel: You just slapped Zaitsev29
(21.10.25) Cernel: hey zaitsev
colin has joined
(21.10.33) ubernaut: hi
(21.10.35) Zaitsev29: hey
(21.10.36) Cernel: can you tell me what version of triplea you are using
(21.10.36) colin: hi
(21.10.43) Zaitsev29: why?
(21.10.44) Zaitsev29: dunno
(21.10.54) Cernel: start triplea on local and look at the version and tell here please
(21.11.10) Zaitsev29: why?
(21.11.30) Cernel: because you froze my game joining it
Zaitsev29 has left
LittleJonny has left
Zaitsev29 has joined
(21.12.24) Zaitsev29: 1.9.0.0.13066
(21.12.27) Zaitsev29: engine version
(21.12.30) Cernel: thanks
(21.12.48) Cernel: that is the same version that I'm using
(21.13.01) Zaitsev29: strange
(21.13.05) Zaitsev29: srry bout that
(21.13.27) Cernel: did you have the map when you joined, or did you get kicked for lacking it?
(21.13.47) Cernel: the 270bc_variants map
(21.14.01) Zaitsev29: no i had to download it
(21.14.07) Cernel: ok thanks -
@Cernel i think that's happened to me as well.
-
@ubernaut Probably it keeps happening to pretty much everyone, especially if you play uncommon maps; latest case:
lug 04, 2019 3:52:22 AM games.strategy.engine.framework.ServerGame lambda$addObserver$1 GRAVE: Failed to join game java.lang.RuntimeException: Exception on remote at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:54) at com.sun.proxy.$Proxy26.joinGame(Unknown Source) at games.strategy.engine.framework.ServerGame.lambda$addObserver$1(ServerGame.java:205) at java.lang.Thread.run(Unknown Source) Caused by: games.strategy.engine.message.ConnectionLostException: Connection to Jim lost at games.strategy.engine.message.UnifiedMessengerHub.connectionRemoved(UnifiedMessengerHub.java:176) at games.strategy.net.AbstractServerMessenger.notifyConnectionsChanged(AbstractServerMessenger.java:493) at games.strategy.net.AbstractServerMessenger.removeConnection(AbstractServerMessenger.java:655) at games.strategy.net.AbstractServerMessenger.socketError(AbstractServerMessenger.java:672) at games.strategy.net.nio.NioSocket.error(NioSocket.java:91) at games.strategy.net.nio.NioReader.loop(NioReader.java:122) ... 1 moreThe frequency at which this happen makes me think that the crash is simply related to joining without having the map, at least with the current stable. My suggestion to the developers would be to do some testing in lobby, by joining hosts without having the map of the game that it is in progress. Let me know if you need a subject.
-
@Cernel i have been playing TWW in the lobby for live battles for the last couple weeks at least twice game has gotten screwed when someone joined, once was mid-battle.
-
This last time I actually waited several minutes, and the host went back working. Next time it happens I will try waiting up to 10 minutes, as well. So, I guess it might be a case similar to the delay you get when someone joins, except lingering for a very long time.
-
@ubernaut It's actually a minor issue for me, since I privately host (so I just go grab the latest autosave), but I guess it is a serious annoyance if you play in a bot?
-
@Cernel if they join in between battles you have to restart the phase.
-
This is the last one I report, as the music is always the same:
lug 06, 2019 10:33:48 PM games.strategy.engine.framework.ServerGame lambda$addObserver$1 GRAVE: Failed to join game java.lang.RuntimeException: Exception on remote at games.strategy.engine.message.UnifiedInvocationHandler.invoke(UnifiedInvocationHandler.java:54) at com.sun.proxy.$Proxy26.joinGame(Unknown Source) at games.strategy.engine.framework.ServerGame.lambda$addObserver$1(ServerGame.java:205) at java.lang.Thread.run(Unknown Source) Caused by: games.strategy.engine.message.ConnectionLostException: Connection to jefflaub lost at games.strategy.engine.message.UnifiedMessengerHub.connectionRemoved(UnifiedMessengerHub.java:176) at games.strategy.net.AbstractServerMessenger.notifyConnectionsChanged(AbstractServerMessenger.java:493) at games.strategy.net.AbstractServerMessenger.removeConnection(AbstractServerMessenger.java:655) at games.strategy.net.AbstractServerMessenger.socketError(AbstractServerMessenger.java:672) at games.strategy.net.nio.NioSocket.error(NioSocket.java:91) at games.strategy.net.nio.NioReader.loop(NioReader.java:122) ... 1 more -
And, yes, it seems like it is just a long delay. Waiting some minutes fixes it.
-
Apparently, if your game-mate disconnects while the game is frozen, for the mentioned issue, the connection lost save you get fails to load. This is the error I get:
ago 18, 2019 6:20:14 PM games.strategy.engine.framework.startup.mc.GameSelectorModel load GRAVE: Error loading game file: C:\Users\001\triplea\savedGames\autoSave\connection_lost_on_ago_18_at_18_15.tsvg, null java.io.EOFException at java.util.zip.GZIPInputStream.readUByte(Unknown Source) at java.util.zip.GZIPInputStream.readUShort(Unknown Source) at java.util.zip.GZIPInputStream.readHeader(Unknown Source) at java.util.zip.GZIPInputStream.<init>(Unknown Source) at java.util.zip.GZIPInputStream.<init>(Unknown Source) at games.strategy.engine.framework.GameDataManager.loadGame(GameDataManager.java:75) at games.strategy.engine.framework.GameDataManager.loadGame(GameDataManager.java:58) at games.strategy.engine.framework.startup.mc.GameSelectorModel.load(GameSelectorModel.java:81) at games.strategy.engine.framework.startup.ui.panels.main.game.selector.GameSelectorPanel.lambda$selectSavedGameFile$4(GameSelectorPanel.java:258) at games.strategy.engine.framework.ui.background.BackgroundTaskRunner.lambda$runInBackground$0(BackgroundTaskRunner.java:50) at games.strategy.engine.framework.ui.background.BackgroundTaskRunner$1.doInBackground(BackgroundTaskRunner.java:121) at javax.swing.SwingWorker$1.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at javax.swing.SwingWorker.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) -
@Cernel The error you posted seems to indicate a corrupt savegame.
Corrupt in the way that something aborted the saving process before it was able to finish.Not entirely sure on what to do about that, nobody here has an in-depth understanding of the networking code and as long we don't have a reliable way to reproduce this "freeze" we'd just be poking around in the dark

-
@RoiEX Well, as I said, this bug appears to be widespread, it happens not always but frequently when, assumingly, users without the map try to join a host, and, once it happens, it seems that the second bug about the corrupted savegame always happens, then, if the hosted player loses connection while the game is frozen.
If I may think of a indirect way of addressing this problem, that way would be logically to invert how the process currently works, for joining games you don't have the map for. Meaning possibly checking for the map's availability (and eventually autodirecting the user to download it from the repository) on your terminal before connecting to the game, or trying to (so that the participants will not even notice if anyone without the map is trying to connect to their game). Also, this way, redirecting to download missing maps in the repository would feel a tad cleaner, if it wouldn't require yourself to crash and lag games first.
Practically, I suppose, the host would need to store the info about what map is being used for that game, like now it keeps the info about what game name is being played, or what is the current round, etc..
I supposed you could even rename the "Name" column in lobby as "Game Name" column, then having a second "Map Name" column next to it, to tell what map is being played there.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login