-
assigned issue to
Armithaig
- edited description
Marked for crossposting by: Noelle Lavenza (transgendeer)
Message (jump):
<Noelle Lavenza (transgendeer)> Reproducible ZoneManager::ThawZone::CacheMiss:::System.IO.FileNotFoundException in Roleplay Mode
To reproduce from a fresh save:
1. Create a save in Roleplay Mode.
2. Move to another zone.
3. Return to your previous zone.
4. Wait at least 80 turns (or at least 5 if you have early zone cacheing enabled).
5. Go to any zone other than the zone you moved to in step 2.
6. Return to your starting village and make a checkpoint.
To reproduce from an existing save with any amount of progress (as long as it's in roleplay mode and a zone
7. Move to a non-checkpoint zone.
8. Head to a new, unexplored zone.
9. Move to another zone.
10. Wait more than 80 (or 5) turns.
11. Move to yet another zone.
12. Save and quit.
13. Reload your game.
14. Die by any means.
15. Reload your checkpoint.
16. Quit without saving (or hit alt-F4).
17. Reload your game and return to the zone you traveled to in step 8.
Result: https://i.imgur.com/29taJSS.pngSteps 1-6 ensure that the
ZoneCachedirectory exists—if it doesn't exist, then checkpointing won't copyCheckpointZoneCacheover it and the bug can't occur.
Steps 7-12 ensure that theZoneCachedirectory and primary.sav's copy of theFrozenZoneslist contains zones that theCheckpointZoneCachedirectory and checkpoint.sav's copy ofFrozenZoneslack.
Step 13-15 result in checkpoint.sav overwriting theZoneCachedirectory andFrozenZoneslist with its version.
Step 16 prevents these changes from being reflected in primary.sav.
Step 17 reloads theFrozenZoneslist from primary.sav, but keeps theZoneCachedirectory from the checkpoint. This means there are zones inFrozenZoneswithout a corresponding file in the cache, causing a cache miss.A potential solution would be to replace primary.sav with checkpoint.sav on saving, meaning FrozenZones can never desync this way.
This issue supersedes
#6269and#6325. It might also supersede#6322, but the setup listed above will not trigger unless there's some way to prevent your starter village from being frozen when you leave—like an active fight. This might also be the potential cause of#5783, given that the report mentions reloading a checkpoint after dying.