Changes between Initial Version and Version 7 of Ticket #3647


Ignore:
Timestamp:
Nov 30, 2015, 10:21:36 AM (8 years ago)
Author:
wraitii
Comment:

I agree with historic_bruno. My suggestion to fix it would be custom-checking in the serialization test that the commands don't change, and if they change, crash with an obvious message and perhaps the changed command to make debugging easier.

We also should fix the broken logic in the places you mentioned.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3647

    • Property Status newreopened
    • Property Summary [PATCH] Serializationtest error when placing wallsSome commands get modified by a simulation update
    • Property Priority Must HaveShould Have
    • Property Keywords patch removed
  • Ticket #3647 – Description

    initial v7  
    1 In #3637 we found out that `TryConstructWall()` in `Commands.js` changes the command object.
     1Some actions in Commands.js modify the commands. This is usually not an issue, but can cause false positives OOS in serializationtest and might fail oddly somewhere down the line.
    22
    3 This means when doing a serializationtest, the command executed in the primary simulation is different from the one in the secondary simulation, resulting in a serializationtesterror.
     3r17324 was a fix for one such case. There are possibly others.
    44
    5 To reproduce it, replay this commands.txt in serializationtest-mode: attachment:commands_reproduce_palisade_oos.txt:ticket:3637
    65
    7 In a multiplayergame, the commands are first sent to the server, then they are executed on all machines identically. So it's basically a '''false positive for OOS'''.
    8 
    9 To fix it, we just need to clone the commands for the secondary simulation before the primary simulation changes them.
    10 
    11 [[Image(http://trac.wildfiregames.com/raw-attachment/ticket/3637/fort_builders_palisade.jpg, 300px, center)]]
     6A fix would be making sure we detect those problems (at least when running serializationtest), and fixing the cases where it happens.