2025-07-19 16:53 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004337Spring engineGeneralpublic2014-03-29 02:02
ReporterGoogle_Frog 
Assigned TojK 
PrioritynormalSeveritymajorReproducibilityrandom
StatusresolvedResolutionfixed 
Product Version96.0.1+git 
Target Version97.0Fixed in Version 
Summary0004337: 96.0.1-356 Non-deterministic Replay
DescriptionI have a replay which can result in distinct games when run. This replay was recorded by the dedicated server which hosted the game. I have not managed to replicate the original game with this replay. My locally recoded replay has the same issue.

For example here are two screenshots from different runs of the dedicated server replay:
http://i.imgur.com/4LbdeMk.png
http://i.imgur.com/eKG4ZK2.png

The original game was a loss for me after about 45 minutes. The large boss queen at the end of the game had about 16% health. Hopefully that information is enough to tell someone whether they can replicate the game that occurred.
Additional InformationGame: Zero-K test-12967
map: Fissure_wip
Engine: 96.0.1-356-g7a95d37
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0012948

jK (developer)

Error: LuaRules::RunCallIn: error = 2, GameFrame, [Internal Lua error: Call failure] [string "LuaRules/Gadgets/unit_terraform.lua"]:2882: bad argument #2 to 'spDestroyUnit' (boolean expected, got table)

?

~0012950

KingRaptor (reporter)

Could the chicken anti-lag system be responsible?

~0012951

Google_Frog (reporter)

jK that is fixed here http://code.google.com/p/zero-k/source/detail?r=12971. I don't think that this sort of thing should affect replay determinism, if it does then there is still a problem.

~0012956

jK (developer)

hmmmm just noticed, may it be related to demo replay speed?
Did a few replays with 1x speed and didn't noticed any desyncs.
Can others replicate that behavior?

~0012957

Google_Frog (reporter)

I have run the replay through at 1x speed and it seems to match the game that occurred. Here is a screenshot for comparison: http://i.imgur.com/VTPsCiC.png

~0012958

cleanrock (reporter)

I can easily reproduce this, doesn't matter if i run replay on speed 1 or not.
I tested to revert 7d7441e1 (ticket 4290) but it did not help.
This can be a fun bisect :).

~0012959

jK (developer)

KR is right, it uses Spring.GetGameSpeed, which is not sync-safe _in demos_.

Fixing that is complicated, will just move the lua func to unsyncedread and ZK must fix their code.

~0012960

cleanrock (reporter)

Fyi, I was running BA KAI games.

~0012963

cleanrock (reporter)

Last edited: 2014-03-25 15:56

View 2 revisions

My tests today look good, i guess aa3533f43 fixed this.
Won't std::map mySyncChecksums get scary big though ? ~100k per hour if one entry per frame.

+Notes

-Issue History
Date Modified Username Field Change
2014-03-20 09:11 Google_Frog New Issue
2014-03-20 09:11 Google_Frog File Added: LocalReplay.sdf
2014-03-20 09:13 Google_Frog File Added: DedicatedServerReplay.sdf
2014-03-20 16:44 jK Note Added: 0012948
2014-03-22 14:47 KingRaptor Note Added: 0012950
2014-03-22 14:54 jK Assigned To => jK
2014-03-22 14:54 jK Status new => assigned
2014-03-23 04:35 Google_Frog Note Added: 0012951
2014-03-23 18:37 abma Target Version => 97.0
2014-03-24 02:53 jK Note Added: 0012956
2014-03-24 04:55 Google_Frog Note Added: 0012957
2014-03-24 18:03 cleanrock Note Added: 0012958
2014-03-24 20:27 jK Note Added: 0012959
2014-03-24 21:17 cleanrock Note Added: 0012960
2014-03-25 15:52 cleanrock Note Added: 0012963
2014-03-25 15:56 cleanrock Note Edited: 0012963 View Revisions
2014-03-29 02:02 jK Changeset attached => spring develop 8ecbf921
2014-03-29 02:02 jK Status assigned => resolved
2014-03-29 02:02 jK Resolution open => fixed
+Issue History