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
Regular server desynchronisations from clients #8093
Comments
Alright, I've got somewhere with reproducing this.
So, something in the map array that's using .m2 , presumably something that's changed since 1.9.x . |
Hopsi Transport Train 1 is in two completely different positions in the two savegames. I had a look at one of the differences in M2 and it looks like the PBS bits for rail (class 1). The dump utility seems to give up at the start of the VEHS chunk for some reason. |
The trains are also different lengths by 6 wagons. 6 wagons are left in the depot in the original save. |
Might be related to the build+refit feature for vehicles. @frosch123 noted on IRC:
|
I have no time left today to test this, but pretty sure this is capable of causing desync: |
Interestingly, getting a build and refit cost estimate re-arranges free wagons in the depot. |
The group statistics are also updated when the temporary engine is sold, this change makes the statistics go negative. This aspect seems OK as it is. |
I can reproduce this in 1.10.1 stable and in 2020-04-26 master nightly. |
Estimate cost is not even necessary it seems. I can "move" the wagons just by selecting an engine in the list while a cargo filter is set. |
…t run, and use DC_AUTOREPLACE for actions that shall be reverted.
… and thus caused desyncs. Use DC_AUTOREPLACE for actions that shall be reversibe.
…ctions. Actual auto-replace does not set a 'user', so this does not affect auto-replace. But it has the same vibe as auto-replace test runs.
Do I understand it correctly that to get that vehicle desync player needs to estimate build or refit cost in some special circumstances? If that's the case it may not be the main cause of most desyncs as many players seem to disconnect just by creating a company or shortly after.
and some to even desync as spectators
|
Oh, wow, I just got desynced myself while spectating and it put the game into the invalid state (same as in #6598). It appears to still be in the game but it's missing the client list and is not actually connected as seen in another game instance. |
… and thus caused desyncs. Use DC_AUTOREPLACE for actions that shall be reversibe, in this case: - Do not rearrange free wagons in test-run. - Do not discard OrderBackups. The latter was not triggered by actual auto-replace, since it does not set a 'user'.
@frosch123 🎉 - reckon we’ll be seeing a point release for this any time soon? |
I think that's quite likely, though we'll want to make sure that the problem has actually been fixed (or that there aren't any other problems like @ldpl is suggesting) |
FWIW here how it looks from the player pov:
So he was fine until he left the game himself and couldn't get back anymore. |
… and thus caused desyncs. Use DC_AUTOREPLACE for actions that shall be reversibe, in this case: - Do not rearrange free wagons in test-run. - Do not discard OrderBackups. The latter was not triggered by actual auto-replace, since it does not set a 'user'.
…us caused desyncs. Use DC_AUTOREPLACE for actions that shall be reversibe, in this case: - Do not rearrange free wagons in test-run. - Do not discard OrderBackups. The latter was not triggered by actual auto-replace, since it does not set a 'user'.
Version of OpenTTD
1.10.1 - compiled from source, running in docker with redditopenttd/openttd
Expected result
The server to stay synchronised with clients.
Actual result
Players regularly desynchronise, usually within a couple of minutes of connecting (myself included).
Steps to reproduce
The
desync=3
log files are linked below. I don't have the starting off save because I stupidly didn't save it, but this one occured within 15 minutes of launching the server.Debug files: https://files.duck.moe/index.php/s/YBrimMsWZHBxATS
This has been occuring for a good few weeks now, especially since the 1.10 release.
The text was updated successfully, but these errors were encountered: