Latest Nightly will fix the Issues
We had a lot of trouble with the latest revisions of OpenTTD and our games suffered from de-syncs. In the last three days we did a lot of debugging and gave information to the developers, they finally found the problems which tend to those symptoms. Today they will be gone. It was a hard journey to locate the problem, sometimes it occurred and sometimes it didn’t, depending on OS, CPU architecture and compiler version. In first place it was a compiler issue, but we also thought some memory bits of the Servers RAM might be broken, also 32bit vs. 64bit was a question. I don’t want to do it so detailed. But here is the final rev.
-Fix [YAPF, r10301]: INVALID_TRACKDIR causing buffer overrun leading to desync in MP game (many thanks Rubidium)
A lot of thanks to KUDr and Rubidium for locating and fixing this issue. Lets continue our games now 🙂
Major problem was that this bug would be less noticable unless different compilers were used and players were connecting to dedicated server. Rubidium’s crosscompiler is based on GCC 4.1.2, and produces binaries for all OSes with certain optimization. Nature of bug was such, that it under some conditions it would access memory which wasnt alocated. Given thats ame compiler and same optimization is used such behavior would be likely to happen in same way, especialy if same OS and architecture is used. However, different optimization, compiler and other environment settings would cause different behavior between clients and server and cause desyncs since they would make different decisions. Brianetta’s server uses GCC 3.4.4 and Alanin’s is 4.0.2… hence official binaries were showing the issue while custom compiled versions on GCC <4.1 or MSVS were working fine.
It took a lot of effort to convince KUDr that the problem does exist in first place and reliably reproduce it. Rubidium spend lots of time tracing exact cause and KUDr aside of that was doing some general cleanup which might help with other issues.
Also, this nightly will address AP/planes and TTRS issues we experienced on Europe game… and might also improve server performance since there was a complete rewrite of YAPF in effort to make it network-safe.
Thanks to Osai, MUcht, hylje and other who helpped testing with this.
Yea! Fixed! Thanks dev’s…. Now hope i won’t keep disconnecting ¬_¬
The compile farm is TrueBrain’s not mine.