View Issue Details

IDProjectCategoryLast Update
0023907AI War 2Crash/ExceptionOct 7, 2020 10:45 pm
ReporterNRSirLimbo Assigned To 
Status newResolutionopen 
Product Version2.606 Lurking And Influencing 
Summary0023907: Exception Popup: "Tried to write IntUltraEfficient O_ˉ1_To_131ˌ071, but passed value was: 287949, which is out of range!"
DescriptionTried to write IntUltraEfficient O_ˉ1_To_131ˌ071, but passed value was: 287949, which is out of range! Value set to 131071 so your save would work. FieldNameForErrors: Guarding.PrimaryKeyID

  at System.Environment.get_StackTrace () [0x00000] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, System.Boolean IncludeStackTrace, Arcen.Universal.Verbosity Verbosity) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.DebugLogDestination Destination, Arcen.Universal.Verbosity Verbosity) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.Universal.ArcenDebugging.ArcenDebugLog (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.Universal.ArcenSerializationBuffer.AddIntUltraEfficient (Arcen.Universal.UltraEfficientStyle UEStyle, System.Int32 Item, System.String FieldNameForErrors, Arcen.Universal.UEErrorStyle ErrorStyle) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at ArcenSerializationAIWar2SpecificExtensions.AddSquadPrimaryKeyID_Neg1ToPos (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Int32 Value, System.String FieldNameForErrors) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.GameEntity_Squad.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, Arcen.Universal.UltraEfficientStyle StyleForPKIDsIfNetworkSyncData) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.PlanetFaction.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, SerializationCommandType SerializationCmdType, System.Boolean IsForLastSettings) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.Planet.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, SerializationCommandType SerializationCmdType, System.Boolean IsForLastSettings) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.Galaxy.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean IsForLastSettings) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.World_AIW2.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean DoPartialSyncForDuringGameplay, System.Boolean IsForLastSettings) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.Universal.World.SerializeTo (Arcen.Universal.ArcenSerializationBuffer Buffer, System.Boolean DoPartialSyncForDuringGameplay, System.Boolean IsForLastSettings) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.Universal.World.SaveWorldToDisk (System.String SaveName, System.Collections.Generic.List`1[T] SavegameMetadata) [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.AIW2.External.GameCommand_SaveGame.Execute (Arcen.AIW2.Core.GameCommand command, Arcen.AIW2.Core.ArcenSimContext context) [0x00000] in <249ca3aeb44d4ac08592e15fdcd7ac91>:0
  at Arcen.AIW2.Core.GameCommand.Execute (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.Core.World_AIW2.OnClient_ExecuteGameCommandsReceivedFromServer (Arcen.AIW2.Core.ArcenSimContext Context) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.AIW2.External.SimPlannerImplementation.DoActualSimStep (System.Boolean& stalledWaitingOnConnections, System.Boolean& mayUpdateVisuals, System.String& reasonForNoVisualUpdates) [0x00000] in <249ca3aeb44d4ac08592e15fdcd7ac91>:0
  at Arcen.AIW2.Core.Engine_AIW2.ProcessSimStep (System.Boolean& stalledWaitingOnConnections, System.String& reasonForNoVisualUpdates) [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at Arcen.Universal.Engine_Universal.OnUpdateFromMainThread () [0x00000] in <80d3b887da1c4823af69956a9f48b3c6>:0
  at Arcen.AIW2.Core.ArcenGameControllerBase.BaseUpdate () [0x00000] in <0d2eaa84bbfd48598341360df96ac58c>:0
  at ArcenGameController.Update () [0x00000] in <342846c60ad043638e2ec80b42611e65>:0
TagsNo tags attached.

Activities

NRSirLimbo

Oct 6, 2020 3:26 pm

developer  

ArcenDebugLog.txt (502,100 bytes)
20201006212447_1.jpg (498,507 bytes)

Chris_McElligottPark

Oct 6, 2020 4:23 pm

administrator   ~0059030

This is during multiplayer, yes?

NRSirLimbo

Oct 6, 2020 7:20 pm

developer   ~0059043

Nope, singleplayer.

All the exceptions from today are from my heavily modded solo test run.

Chris_McElligottPark

Oct 6, 2020 8:24 pm

administrator   ~0059047

Oh, I see. This is based on SaveWorldToDisk(), I totally misread that. This is... a very strange thing, to be honest.

Have you been doing anything with guards in your mods? Basically, what has happened in this is that it had a guard ID of 287949, but that's like twice the ID value of any other ship in the game. Unless all of the other 100k ships that were created later died (which would be a surprise), then that is a wrong value for some reason.

With a sync for multiplayer, that would have opened up different possibilities, but in this case it seems to really be bad data and not really a data saving problem per se.

NRSirLimbo

Oct 6, 2020 10:42 pm

developer   ~0059058

I can't say much about Civilian Industries, but as for Marauders they don't guard.

NRSirLimbo

Oct 6, 2020 10:42 pm

developer   ~0059059

Star Kelp signed off for tonight, I'll ask him tomorrow.

NRSirLimbo

Oct 7, 2020 10:45 pm

developer   ~0059084

Well, Kelp also says no.

Though I must correct myself on one thing: I am briefly clearing some guarding info

if (entity.Guarding.Ref == null &&
    entity.GuardingOffsets.Count > 0 &&
    (EntitySimLogic.Instance as EntitySimLogicImplementation).GetShouldEntityUseImplicitMeleeAttackerBehavior(entity))
{
    entity.GuardingOffsets.Clear(); // clear melee unit's memory of where to go back to
}

This I copied from the Traverse-through-wormholes code. But as it only ever clears data AND is copied 1:1 from Vanilla code I can hardly imagine it being responsible for any bug.

Issue History

Date Modified Username Field Change
Oct 6, 2020 3:26 pm NRSirLimbo New Issue
Oct 6, 2020 3:26 pm NRSirLimbo File Added: ArcenDebugLog.txt
Oct 6, 2020 3:26 pm NRSirLimbo File Added: 20201006212447_1.jpg
Oct 6, 2020 4:23 pm Chris_McElligottPark Note Added: 0059030
Oct 6, 2020 7:20 pm NRSirLimbo Note Added: 0059043
Oct 6, 2020 8:24 pm Chris_McElligottPark Note Added: 0059047
Oct 6, 2020 10:42 pm NRSirLimbo Note Added: 0059058
Oct 6, 2020 10:42 pm NRSirLimbo Note Added: 0059059
Oct 7, 2020 10:45 pm NRSirLimbo Note Added: 0059084