New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disconnecting clients affect other clients in the queue #8751
Comments
It appears that clients only transition out of STATUS_MAP_WAIT in the success path of ServerNetworkGameSocketHandler::SendMap of the client in the STATUS_MAP phase. The 0 clients thing just looks like an off by one error in ServerNetworkGameSocketHandler::SendWait(), probably the initial value should be 1. |
And desync happens because clients are not queued so by the time second client executes COMPANY_CTRL first client is already gone and company is not created. So it may actually need to be moved to a separate bug as it can likely cause issues not just for connecting players but in other cases as well (e.g. client lag). |
That seems like a misdesign of CmdCompanyCtrl really. It shouldn't be the job of clients to synchronously track the states of other clients. |
Linguistic this is correct. There is nobody waiting in front of you :P An additional bug: if the client in |
Suddenly remembered, this desync may actually be the one I was looking for in #8093 |
Version of OpenTTD
master (af32675), 1.10.3, 1.9.3
Expected result
Client connects without issues regardless of what other clients do.
Actual result
Client loses connection
Steps to reproduce
There is also a variation of this bug where second client gets desync. Happens when first client connects with "new company" and leaves the server before the second one finishes downloading the map.
P.S. it also says 0 clients in front of you while waiting
The text was updated successfully, but these errors were encountered: