View Issue Details

IDProjectCategoryLast Update
0024728AI War 2Crash/ExceptionApr 22, 2021 5:21 pm
ReporterNRSirLimbo Assigned ToChris_McElligottPark  
Status resolvedResolutionfixed 
Product Version2.806 Correctness By Attrition 
Fixed in Version2.807 Beginner Journals and MP Sync 
Summary0024728: Multiplayer (Client) Exception Popup: "Exception in Client_AcceptDivergenceDataFromHost-DivergencesSection"
DescriptionClient-only exception, seems to have something to do with the Turret Granting Hack.

Modded with AMU, Kaizers Marauders and More System Defenders.

4/22/2021 9:21:33 PM 2.806 CLIENT GameEntity_Squad deserialization error at stage 25100 from serialized version 2.806 loading into new version 2.806, error: System.Exception: Error: DeserializeFrom_Inner DoByIndex=true nameIndex of 1791 larger than IndexSerializationInfo.SerializedNamesList.Count of 1480 on table: GameEntityTypeDataTable PlaceOfDeserializationForDebugging: HackingEvent From Version: 2.806
  at Arcen.Universal.ArcenDynamicTable`1[T].DeserializeFrom_Inner (Arcen.Universal.ArcenDeserializationBuffer Buffer, System.String& NameFound, System.Boolean DoByIndex, Arcen.Universal.LookupSwapAllowed SwapAllowed, System.String PlaceOfDeserializationForDebugging, System.String FieldNameForErrors) [0x00200] in <03dce1cd54d34eeb82b9ba18e13651a9>:0
  at Arcen.Universal.ArcenDynamicTable`1[T].DeserializeByIndex (Arcen.Universal.ArcenDeserializationBuffer Buffer, System.String PlaceOfDeserializationForDebugging, System.String FieldNameForErrors) [0x00001] in <03dce1cd54d34eeb82b9ba18e13651a9>:0
  at Arcen.AIW2.Core.HackingEvent.DeserializedIntoSelf (Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x001ab] in <17a945c3fd394cc1ab9856cad2741e79>:0
  at Arcen.AIW2.Core.HackingEvent.DeserializeNewFrom (Arcen.Universal.ArcenDeserializationBuffer Buffer) [0x00007] in <17a945c3fd394cc1ab9856cad2741e79>:0
  at Arcen.AIW2.Core.GameEntity_Squad.DeserializedIntoSelf (System.Int32 primaryKeyID, Arcen.AIW2.Core.GameEntityTypeData typeData, Arcen.AIW2.Core.Planet NewPlanet, Arcen.Universal.ArcenDeserializationBuffer Buffer, System.Boolean HideErrors, System.Boolean IsLoadingTemplate, Arcen.Universal.SerializationCommandType SerializationCmdType, Arcen.AIW2.Core.PlanetFaction NewPlanetFaction) [0x016f1] in <17a945c3fd394cc1ab9856cad2741e79>:0
4/22/2021 9:21:33 PM 2.806 CLIENT Exception in Client_AcceptDivergenceDataFromHost-DivergencesSection: debugStage: 1100 Exception: System.Exception: Canary code exception at InternalCanary (c). Code above it is the real problem.
  at Arcen.Universal.ArcenDeserializationBufferModern.ValidateCanary (System.Char ExpectedCanaryChar, System.String CanaryFieldName, Arcen.Universal.CanaryStyle Canary) [0x000bb] in <03dce1cd54d34eeb82b9ba18e13651a9>:0
  at AIWar2NetworkSync.Client_AcceptDivergenceDataFromHost (Arcen.Universal.ArcenDeserializationBuffer buffer) [0x00360] in <17a945c3fd394cc1ab9856cad2741e79>:0
TagsNo tags attached.

Activities

NRSirLimbo

Apr 22, 2021 3:24 pm

developer  

ArcenDebugLog - Kopie.txt (2,080,860 bytes)

Chris_McElligottPark

Apr 22, 2021 4:09 pm

administrator   ~0061198

Bit 1:

* When exceptions happen in trying to deserialize a table row by index, it now includes the field name properly. This will help fixing exceptions in those serialization areas.

Chris_McElligottPark

Apr 22, 2021 4:15 pm

administrator   ~0061199

* Added three more canaries that are network-only, these ones into hacking events, so that we can identify if there is a problem with them.

Chris_McElligottPark

Apr 22, 2021 4:23 pm

administrator   ~0061200

* Added another canary around the active hacking event on entities, again only for multiplayer. Code review seemed fine, so narrowing it down even further seems needed.

Chris_McElligottPark

Apr 22, 2021 4:32 pm

administrator   ~0061201

* Put in some extra paranoid canaries, for the network only, surrounding each kind of external data. That way if a specific mod or subfaction or whatever has a serialization issue, it will become apparent which one it was.

Chris_McElligottPark

Apr 22, 2021 4:52 pm

administrator   ~0061202

Okay, I can hit these canaries!!

Chris_McElligottPark

Apr 22, 2021 5:21 pm

administrator   ~0061204

HUGE thanks for this report!

* Fixed a super longstanding MP issue that has become more prominent recently, but has been hiding in plain sight basically since the start, breaking ship sync intermittently and also causing some other issues.
** Essentially, on MP clients it would not properly say "I finished my current hack" on ships that were hacking. This led to situations where it tried to deserialize nonexistent hacking event data on the hacker every time the host would send it new data, which would then lead to serialization failures and in general a long and continual divergence in the simulations.
** However, this was something that would fix itself on disconnect or reconnect, or save and reload, so that made this super extra hard to find. Until recently, it was also not clear that this was related to hacking events, because without the new density of canaries we didn't find out things were wrong until long enough after a hack finished that they didn't seem correlated to anyone.
** This was surely a cause for various other UI and behavior problems on clients, such as likely inability to do more hacks with that hacker, and other things of that sort.
** We have verified the fix, and knock on wood let's hope this is the last of the mystery sync issues!

Issue History

Date Modified Username Field Change
Apr 22, 2021 3:24 pm NRSirLimbo New Issue
Apr 22, 2021 3:24 pm NRSirLimbo File Added: ArcenDebugLog - Kopie.txt
Apr 22, 2021 4:09 pm Chris_McElligottPark Note Added: 0061198
Apr 22, 2021 4:15 pm Chris_McElligottPark Note Added: 0061199
Apr 22, 2021 4:23 pm Chris_McElligottPark Note Added: 0061200
Apr 22, 2021 4:32 pm Chris_McElligottPark Note Added: 0061201
Apr 22, 2021 4:52 pm Chris_McElligottPark Note Added: 0061202
Apr 22, 2021 5:21 pm Chris_McElligottPark Assigned To => Chris_McElligottPark
Apr 22, 2021 5:21 pm Chris_McElligottPark Status new => resolved
Apr 22, 2021 5:21 pm Chris_McElligottPark Resolution open => fixed
Apr 22, 2021 5:21 pm Chris_McElligottPark Fixed in Version => 2.807 Beginner Journals and MP Sync
Apr 22, 2021 5:21 pm Chris_McElligottPark Note Added: 0061204