View Issue Details

IDProjectCategoryView StatusLast Update
0004856Spring engineGeneralpublic2015-07-02 07:42
Reporterjamerlan Assigned TojK  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version99.0 
Target Version100.0 
Summary0004856: desync when watching demo recorded on the server side
Descriptionyesterday we tested 99 engine with test version of BA
in real life I won.. on replay I lost com like a noob

I have both replays: local and server

20150627_220440_DeltaSiegeDry_99.sdf - replay from server. I desync when watching it.

To watch i use:
"/setmaxspeed 20"
and then I use that "20" speed.

infolog.txt - is from watching the demo
TagsNo tags attached.
Attached Files
infolog.txt (Attachment missing)
Checked infolog.txt for Errors

Activities

jamerlan

2015-06-28 20:26

reporter   ~0014753

Cannot upload replays to mantice.
Here is dropbox links:
server demo: https://www.dropbox.com/s/t8n1cyo8x6mp8i1/20150627_220440_DeltaSiegeDry_99.sdf?dl=0


Cant find local demo.. still searching.. but probably server demo is enough. Because in demo everyone looks desynced

jamerlan

2015-06-28 20:40

reporter   ~0014754

I found my local replay. When I watch it - it shows me "desynced" world too
https://www.dropbox.com/s/7k71b2zdwi588h2/20150627_230445_DeltaSiegeDry_99.sdf?dl=0

so both demos are broken: server and local

hokomoko

2015-06-29 13:48

developer   ~0014767

I've hit same assert as here: https://springrts.com/mantis/view.php?id=4851#c14737

This should be fixed here: https://github.com/spring/spring/commit/12dfee96136e1f3834b5a53ceb0b2e1b23e8bdaf

jamerlan

2015-06-29 15:28

reporter   ~0014769

How should I re-test? cherry-pick commit to release branch and watch replay again?

In "develop" branch it will desync anyway. And if I cherry-pick - compilation failed

hokomoko

2015-06-29 15:30

developer   ~0014770

I don't think it's retestable.
I'll try to verify first if that's the issue indeed.

abma

2015-06-29 23:41

administrator   ~0014787

Last edited: 2015-06-29 23:43

tested with 99.0 + cherry-picked 12dfee96... got no failed assert.


(not sure what to do with the desync to demo)

hokomoko

2015-06-30 00:03

developer   ~0014788

indeed desync still happens, no luck yet.

abma

2015-06-30 00:49

administrator   ~0014789

what confuses me is, that i get the same checksums which were recorded in infolog.txt: is sth. broken with the demo recorder broken? the message is only recorded locally:
https://github.com/spring/spring/blob/develop/rts/Net/NetCommands.cpp#L558

my msg:
[f=0010868] Error: [DESYNC_WARNING] checksum efaa9dc8 from player 1 (Subionic) does not match our checksum 25875931 for frame-number 10860
msg from jamerlan:
[f=0010868] Error: [DESYNC_WARNING] checksum efaa9dc8 from player 1 (Subionic) does not match our checksum 25875931 for frame-number 10860

so jamerlan & i sync when watching the replay, but we both don't sync to the checksum stored in replay.

abma

2015-06-30 01:02

administrator   ~0014790

@jamerlan:

just to be sure: no desync warnings / errors when you played this game?

jamerlan

2015-06-30 01:25

reporter   ~0014791

abma, yep, game was played without desyncs or errors

abma

2015-06-30 01:54

administrator   ~0014792

Last edited: 2015-06-30 02:06

ooh, i have a candidate:

[f=0000457] [gluon (replay)] !joinas station lucido
[f=0000457] > BlackHoleHost7 * Adding player lucido in ID 0 (by gluon)
[f=0000457] [Game::ClientReadNet] added new player lucido with number 31 to team 0


joinas is pretty new and rarely used / badly tested! (imo + afaik)

(but still a wild guess)

jamerlan

2015-06-30 01:57

reporter   ~0014793

it was used often enough in spring 98

jK

2015-06-30 09:51

developer   ~0014795

Last edited: 2015-06-30 10:01

Only thing I know so far is:
(i) watching the demo at speed 1-20 desyncs
(ii) /skip 10000 does NOT desync

hokomoko

2015-06-30 11:18

developer   ~0014796

Traces are identical, are you sure sync checksum is checked when you /skip?

jamerlan

2015-06-30 11:27

reporter   ~0014797

with /skip 10000 it desyncs too
in desynced replay I ([teh]decay) lost com like a noob and then did nothing
in real life I killed whole south :-)

jK

2015-06-30 11:38

developer   ~0014798

Strange, when skipping close to the 11k frame (i.e /skip 400 or /skip 500) it desyncs (even before the skipping finished).
Only skipping far behind that 11k frame prevents the desync.

hokomoko

2015-06-30 12:01

developer   ~0014799

Last edited: 2015-06-30 12:27

I believe abma is right.
When watching the demo, you get the id 30, and then when lucido joins, he gets the id 31 instead of 30 (which he originally got).

verified - if you run the demo and do /cheats /godmode, there is no desync until 0016506. (lucido's commands work even though they're from your playerID)

jK

2015-07-02 07:42

developer   ~0014828

Fix 7d0351a25ae41f73b260c4de6183c945012c0c5c committed to develop branch: fix 0004856: make player ids static in demos
(for that the demo needs to save the amount of total players in the demo), repo: spring changeset id: 5285

Issue History

Date Modified Username Field Change
2015-06-28 20:14 jamerlan New Issue
2015-06-28 20:14 jamerlan File Added: infolog.txt
2015-06-28 20:26 jamerlan Note Added: 0014753
2015-06-28 20:40 jamerlan Note Added: 0014754
2015-06-29 11:28 abma Target Version => 100.0
2015-06-29 13:42 hokomoko Changeset attached => spring develop 12dfee96
2015-06-29 13:48 hokomoko Note Added: 0014767
2015-06-29 13:48 hokomoko Assigned To => hokomoko
2015-06-29 13:48 hokomoko Status new => feedback
2015-06-29 15:28 jamerlan Note Added: 0014769
2015-06-29 15:28 jamerlan Status feedback => assigned
2015-06-29 15:30 hokomoko Note Added: 0014770
2015-06-29 20:20 hokomoko Status assigned => new
2015-06-29 23:41 abma Note Added: 0014787
2015-06-29 23:41 abma Note Edited: 0014787
2015-06-29 23:43 abma Note Edited: 0014787
2015-06-30 00:03 hokomoko Note Added: 0014788
2015-06-30 00:49 abma Note Added: 0014789
2015-06-30 01:02 abma Note Added: 0014790
2015-06-30 01:25 jamerlan Note Added: 0014791
2015-06-30 01:54 abma Note Added: 0014792
2015-06-30 01:56 abma Note Edited: 0014792
2015-06-30 01:57 jamerlan Note Added: 0014793
2015-06-30 02:06 abma Note Edited: 0014792
2015-06-30 09:51 jK Note Added: 0014795
2015-06-30 10:01 jK Note Edited: 0014795
2015-06-30 11:18 hokomoko Note Added: 0014796
2015-06-30 11:27 jamerlan Note Added: 0014797
2015-06-30 11:38 jK Note Added: 0014798
2015-06-30 12:01 hokomoko Note Added: 0014799
2015-06-30 12:08 hokomoko Assigned To hokomoko => jK
2015-06-30 12:08 hokomoko Status new => assigned
2015-06-30 12:26 hokomoko Note Edited: 0014799
2015-06-30 12:27 hokomoko Note Edited: 0014799
2015-07-02 07:42 jK Changeset attached => spring develop 7d0351a2
2015-07-02 07:42 jK Note Added: 0014828
2015-07-02 07:42 jK Status assigned => resolved
2015-07-02 07:42 jK Resolution open => fixed