View Issue Details

IDProjectCategoryLast Update
0029634Heart Of The MachineCrash/ExceptionOct 30, 2024 3:45 pm
Reportermblazewicz Assigned ToChris_McElligottPark  
Status resolvedResolutionfixed 
Product Version0.593.3 The Post-Apocalypse 
Fixed in Version0.593.5 Post-Apocalyptic Construction 
Summary0029634: Exception - Exception can occur which heavily corrupts saves
DescriptionDescription:
After performing precisely unknown steps during each new save attempt an exception will occur. Each save done after reproducing the exception will be heavily corrupted and practically softlocked.

Callstack:
SINGLEP DELAYED536 TID9 ObjectsOutstanding is 2, but should be 0! Someone didn't close an object reference, looks like. Full list: POI, AbstractSim
  at System.Environment.get_StackTrace () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at Arcen.Universal.ArcenDebugging.LogWithStack (System.String Message, Arcen.Universal.Verbosity Verbosity) [0x00000] in <b86b02a911094f0a86402b51683fb92e>:0
  at Arcen.Universal.ArcenFileSerializer.WriteFooterIfNeeded () [0x00000] in <b86b02a911094f0a86402b51683fb92e>:0
  at Arcen.Universal.ArcenFileSerializer.WriteToStream (System.IO.BinaryWriter ByteWriter) [0x00000] in <b86b02a911094f0a86402b51683fb92e>:0
  at Arcen.Universal.ArcenFileSerializer.WriteToStream (System.String Filename) [0x00000] in <b86b02a911094f0a86402b51683fb92e>:0
  at Arcen.HotM.Core.WorldSaveLoad.DoSave_CoreLogic (System.String WorldSaveFolderNameOrBlank, System.String WorldSaveFileName, Arcen.HotM.Core.SaveType SaveType, System.Boolean CanDoAnySkips) [0x00000] in <328ea45953cc48e1b8f729fc649b097d>:0
  at Arcen.HotM.Core.WorldSaveLoad+<>c__DisplayClass13_0.<SaveGameOnBackgroundThreadIfNotAlreadySaving>b__0 (Arcen.Universal.TaskStartData startData) [0x00000] in <328ea45953cc48e1b8f729fc649b097d>:0
  at Arcen.Universal.ArcenThreading+<>c__DisplayClass20_0.<InnerRunTaskOnBackgroundThread>b__0 () [0x00000] in <b86b02a911094f0a86402b51683fb92e>:0
  at System.Threading.Tasks.Task.InnerInvoke () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.Tasks.Task.Execute () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.Tasks.Task.ExecutionContextCallback (System.Object obj) [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.Tasks.Task.ExecuteWithThreadLocal (System.Threading.Tasks.Task& currentTaskSlot) [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.Tasks.Task.ExecuteEntry (System.Boolean bPreventDoubleExecution) [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <9d9536d9127f4a489d989c7a566aee1c>:0

Steps to Reproduce:
1. Place as many of your buildings as spread out as possible while disregarding usability
2. Pass 3 turns
3. Observe the exception

Notes:
- Provided reproduction steps are a very rough estimate as attempts to reproduce the issue failed
TagsNo tags attached.

Activities

mblazewicz

Oct 30, 2024 1:41 pm

manager   ~0070627

Adding attachments:

Loading the after save should throw a lot of exceptions about buildings being removed which are present at the bottom of the logs file.
29634_Logs.txt (2,284,270 bytes)
29634_Video.mp4 (10,537,864 bytes)   
29634_Save_Before.save (4,266,316 bytes)
29634_Save_After.save (3,749,839 bytes)

Chris_McElligottPark

Oct 30, 2024 3:45 pm

administrator   ~0070634

Thanks!

* The way that POIs are saved into savegames has been hardened so that if they happen to be collapsing right as the savegame is being saved, or they have a reference to a building that no longer exists, then the problematic POI will simply not be saved.
** Also fixed a bug in the prior version where discovered POIs were being read as destroyed, which probably was not helping matters.

Issue History

Date Modified Username Field Change
Oct 30, 2024 1:35 pm mblazewicz New Issue
Oct 30, 2024 1:35 pm mblazewicz Status new => assigned
Oct 30, 2024 1:35 pm mblazewicz Assigned To => mblazewicz
Oct 30, 2024 1:41 pm mblazewicz Note Added: 0070627
Oct 30, 2024 1:41 pm mblazewicz File Added: 29634_Logs.txt
Oct 30, 2024 1:41 pm mblazewicz File Added: 29634_Video.mp4
Oct 30, 2024 1:41 pm mblazewicz File Added: 29634_Save_Before.save
Oct 30, 2024 1:41 pm mblazewicz File Added: 29634_Save_After.save
Oct 30, 2024 1:41 pm mblazewicz Assigned To mblazewicz => Jan Kuzior
Oct 30, 2024 1:47 pm Jan Kuzior Assigned To Jan Kuzior => Chris_McElligottPark
Oct 30, 2024 3:45 pm Chris_McElligottPark Status assigned => resolved
Oct 30, 2024 3:45 pm Chris_McElligottPark Resolution open => fixed
Oct 30, 2024 3:45 pm Chris_McElligottPark Fixed in Version => 0.593.5 Post-Apocalyptic Construction
Oct 30, 2024 3:45 pm Chris_McElligottPark Note Added: 0070634