Opened 6 years ago

Closed 6 years ago

#5048 closed defect (fixed)

OOS on rejoin - classesList of Mirage

Reported by: elexis Owned by: temple
Priority: Release Blocker Milestone: Alpha 23
Component: UI & Simulation Keywords:
Cc: Patch: Phab:D1325

Description

In this alpha 23 match on the new Via Augusta skirmish map with r21329 with temple, Emperior, Dizaka and mord, we experienced an OOS on rejoin.

It can be reproduced with the command-line rejointest starting turn 714. There is only a binary difference.

Attachments (1)

oos_reproduce.7z (144.3 KB ) - added by elexis 6 years ago.

Download all attachments as: .zip

Change History (6)

by elexis, 6 years ago

Attachment: oos_reproduce.7z added

comment:1 by elexis, 6 years ago

Summary: OOS on rejoinOOS on rejoin - ResourceGatherer / ResourceSupply

comment:2 by elexis, 6 years ago

Summary: OOS on rejoin - ResourceGatherer / ResourceSupplyOOS on rejoin - numBuilders mirage / ResourceGatherer / ResourceSupply

The first binary difference is something about miraged numBuilders, the rest (lots of diffs) is about ResourceSupply / ResourceGatherer which could be a consequence of the first diff.

comment:3 by temple, 6 years ago

Seems to be classesList of Mirage, in this case one is serialized as an array and the other as a reference.

https://imgur.com/a/cTlkh

Can reproduce by one player miraging an entity (by moving so that it's in his fog of war), someone rejoining, and then a different player miraging the same entity. (You'll need at least three players since players can't mirage their own buildings.) Will explore more later.

comment:4 by temple, 6 years ago

Patch: Phab:D1325
Summary: OOS on rejoin - numBuilders mirage / ResourceGatherer / ResourceSupplyOOS on rejoin - classesList of Mirage

comment:5 by temple, 6 years ago

Owner: set to temple
Resolution: fixed
Status: newclosed

In 21478:

Fix OOS on rejoin by cloning in Mirage

Differential Revision: https://code.wildfiregames.com/D1325
Reviewed by: elexis, bb
Fixes: #5048

Note: See TracTickets for help on using tickets.