Opened 8 years ago

Last modified 7 years ago

#3647 closed defect

[PATCH] Serializationtest error when placing walls — at Initial Version

Reported by: elexis Owned by:
Priority: Should Have Milestone: Alpha 20
Component: Core engine Keywords: patch
Cc: Patch:

Description

In #3637 we found out that TryConstructWall() in Commands.js changes the command object.

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.

To reproduce it, replay this commands.txt in serializationtest-mode: attachment:commands_reproduce_palisade_oos.txt:ticket:3637

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.

To fix it, we just need to clone the commands for the secondary simulation before the primary simulation changes them.

http://trac.wildfiregames.com/raw-attachment/ticket/3637/fort_builders_palisade.jpg

Change History (1)

by elexis, 8 years ago

Fixes the bug, but should be optimized performance-wise as this patch initializes the secondary context and component manager in non-serializationtestmode too.

Note: See TracTickets for help on using tickets.