View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0024728 | AI War 2 | Crash/Exception | Apr 22, 2021 3:24 pm | Apr 22, 2021 5:21 pm | |
Reporter | NRSirLimbo | Assigned To | Chris_McElligottPark | ||
Status | resolved | Resolution | fixed | ||
Product Version | 2.806 Correctness By Attrition | ||||
Fixed in Version | 2.807 Beginner Journals and MP Sync | ||||
Summary | 0024728: Multiplayer (Client) Exception Popup: "Exception in Client_AcceptDivergenceDataFromHost-DivergencesSection" | ||||
Description | Client-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 | ||||
Tags | No tags attached. | ||||
|
|
|
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. |
|
* 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. |
|
* 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. |
|
* 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. |
|
Okay, I can hit these canaries!! |
|
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! |
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 |