[#bugs] Reproducible ZoneManager::ThawZone::CacheMiss:::System.IO.FileNotFoundException ...

Issue #6339 resolved
Freehold Games Bot Account created an issue

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.png

Steps 1-6 ensure that the ZoneCache directory exists—if it doesn't exist, then checkpointing won't copy CheckpointZoneCache over it and the bug can't occur.
Steps 7-12 ensure that the ZoneCache directory and primary.sav's copy of the FrozenZones list contains zones that the CheckpointZoneCache directory and checkpoint.sav's copy of FrozenZones lack.
Step 13-15 result in checkpoint.sav overwriting the ZoneCache directory and FrozenZones list with its version.
Step 16 prevents these changes from being reflected in primary.sav.
Step 17 reloads the FrozenZones list from primary.sav, but keeps the ZoneCache directory from the checkpoint. This means there are zones in FrozenZones without 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 #6269 and #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.

Comments (2)

  1. Log in to comment