2019-12-14 23:25 CET

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0004856Spring engineGeneralpublic2015-07-02 07:42
Reporterjamerlan 
Assigned TojK 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version99.0 
Target Version100.0Fixed in Version 
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.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0014753

jamerlan (reporter)

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

~0014754

jamerlan (reporter)

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

~0014767

hokomoko (developer)

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

~0014769

jamerlan (reporter)

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

~0014770

hokomoko (developer)

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

~0014787

abma (administrator)

Last edited: 2015-06-29 23:43

View 3 revisions

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


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

~0014788

hokomoko (developer)

indeed desync still happens, no luck yet.

~0014789

abma (administrator)

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.

~0014790

abma (administrator)

@jamerlan:

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

~0014791

jamerlan (reporter)

abma, yep, game was played without desyncs or errors

~0014792

abma (administrator)

Last edited: 2015-06-30 02:06

View 3 revisions

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)

~0014793

jamerlan (reporter)

it was used often enough in spring 98

~0014795

jK (developer)

Last edited: 2015-06-30 10:01

View 2 revisions

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

~0014796

hokomoko (developer)

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

~0014797

jamerlan (reporter)

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 :-)

~0014798

jK (developer)

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.

~0014799

hokomoko (developer)

Last edited: 2015-06-30 12:27

View 3 revisions

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)

~0014828

jK (developer)

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
+Notes

+Related Changesets

-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 View Revisions
2015-06-29 23:43 abma Note Edited: 0014787 View Revisions
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 View Revisions
2015-06-30 01:57 jamerlan Note Added: 0014793
2015-06-30 02:06 abma Note Edited: 0014792 View Revisions
2015-06-30 09:51 jK Note Added: 0014795
2015-06-30 10:01 jK Note Edited: 0014795 View Revisions
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 View Revisions
2015-06-30 12:27 hokomoko Note Edited: 0014799 View Revisions
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
+Issue History