Interrupting joining process causes the host to crash. #526
Replies: 9 comments
-
Hello, some good news! This issue is connected to #508. The problems started appearing recently, probably because of the palworld situation (it's huge, EOS seems to lag a lot, might be connected heh). By enabling all the possible logs for netcode and EOS, we figured out that it seems the problem lies here within NGO's NetworkManager: When "Client Connection Buffer Timeout (default value = 10)" is 10, then it sometimes fails, causing both player and host getting kicked. When decreasing the value to 1, you see the crash every connection. When increased to 30, it doesn't happen anymore at all. This explains why the issue has only started happening recently for us. Another issue is that kicking players doesn't work properly, as it kicks host too. This is actually the same issue that causes the host to kick itself when the client fails to connect. We figured out a way to fix it inside netcode for gameobjects:
It seems that the problem is that the My main request here is to:
|
Beta Was this translation helpful? Give feedback.
-
@nitrocss Great info! I will look into this and get you some answers by EOD. |
Beta Was this translation helpful? Give feedback.
-
In RE: the following:
AFAIK, there is no way to reduce the join time, as that is dependent on the server response time and network conditions between the game and Epic Online Services servers. That is to say, there is no exigent performance bottleneck in the EOS SDK or the plugin. While I investigate the ID issue in the transport layer, I will look into this and confirm that it is the case, because I agree that is suboptimal performance, and if there's anything that can be done on our end to speed it up it would be good to know. |
Beta Was this translation helpful? Give feedback.
-
I'm assuming that you mean |
Beta Was this translation helpful? Give feedback.
-
At first look: then internal void HandleNetworkEvent(
NetworkEvent networkEvent,
ulong transportClientId,
ArraySegment<byte> payload,
float receiveTime)
{
switch (networkEvent)
{
case NetworkEvent.Disconnect:
DisconnectEventHandler(transportClientId);
break;
}
} client id seems to be provided by the |
Beta Was this translation helpful? Give feedback.
-
Some other details that would be good to have:
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@nitrocss In retrospect, it seems more appropriate to move this to a discussion, so we can continue to help find a work-around between now and when we've implemented support for the newer version of Unity and the newer version of Netcode. You have alluded to a few things that have served as stop-gap solutions - do those satisfy your requirements for the time being, or are there still wrinkles that we can help you iron out? |
Beta Was this translation helpful? Give feedback.
-
Interrupting joining process causes the host to crash. Important: I couldn't reproduce the bug with 1 PC. I reproduced it with 2 different PCs in the same city. (might require a bit of lag). I did it three times in a matter of a couple of minutes, so it is definitely a problem that is reproducible, and abusable.
Repro steps:
This might be directly related to issues with other transport layers:
Especially important is the second link, as one person seems to have fixed the issue for facepunch transport layer.
Unity-Technologies/com.unity.netcode.gameobjects#2804
Unity-Technologies/multiplayer-community-contributions#245 (comment)
Beta Was this translation helpful? Give feedback.
All reactions