View Issue Details
|ID||Project||Category||Date Submitted||Last Update|
|0024708||AI War 2||[All Projects] Crash/Exception||Apr 18, 2021 4:45 pm||Apr 20, 2021 10:30 am|
|Product Version||2.803 Multiplayer Option Overload|
|Fixed in Version||2.805 Relentless On Several Levels|
|Summary||0024708: Save game fails to load|
|Description||My save games from yesterday all ended up corrupted. Attached is the log and save games.|
(ticket failed to generate, recreating)
|Tags||No tags attached.|
Apr 18, 2021 4:45 pm
2021.zip (1,390,491 bytes)
ArcenDebugLog.txt (691,720 bytes)
Okay, this is the first thing I saw:
* Put in some new cross-threading protections for when entity order collections are altered in any way.
** Rather than using a concurrent queue or something of that nature, we are using an old fashioned style of thread lock on the lists in question.
** There is the very rare risk that this could cause a deadlock, but most likely this would be detected and it will kill the background thread. In the event that happens, we can adjust further. It's also possible that this was the cause of the freezing up that Strategic Sage saw over the weekend, although we're probably not that lucky.
In the words of Marv: "wow, what a hole." ;)
* The game now supports putting "canaries" into serialized savegames as well as on the network.
** This is useful for quickly detecting when there is savegame corruption of some sort, which could be caused by a mistake on our part, or a bug in a mod that contains savegame-style data.
*** Because of the utility with mods, which are ever-changing, this is something we're puttting in in a minimally-invasive fashion so that we can leave this in indefinitely rather than just having it when we know we have some sort of problem in our own code.
* There is some sort of ultra-rare serialization problem with entities that breaks certain savegames. This must be something that has a very strong temporal component, or is using a feature that very few ships use, or something of that nature.
** Right now we are unable to identify where it is, although we know it is not mod-related. The new canaries are an attempt to locate this, given the rarity of the item in question.
** We wish that we were able to to solve this directly in one go, but essentially we need a version of this where it is broken after saving with the canaries present in order for us to find it. We've tried reverse engineering it from existing broken saves, but did not find anything conclusive despite a few promising leads.
So, essentially there is one save in there that you can load out of the ones you sent, but I can't get that one to corrupt like the others, and the others I can't untangle where they went wrong. I can see places where they are wrong, but I chased all through the code and could not find the source. I wound up putting in these canaries, and if this issue recurs for you (it should happen for you or someone), then let's open a new issue and hopefully I'll be able to solve that one. For now, this one has hit kind of roadblock, but I've put in the new code that can at least let us nail it next time, knock on wood.
|Apr 18, 2021 4:45 pm||ptarth||New Issue|
|Apr 18, 2021 4:45 pm||ptarth||File Added: 2021.zip|
|Apr 18, 2021 4:45 pm||ptarth||File Added: ArcenDebugLog.txt|
|Apr 19, 2021 4:36 pm||x4000Bughunter||Note Added: 0061150|
|Apr 20, 2021 10:30 am||x4000Bughunter||Assigned To||=> x4000Bughunter|
|Apr 20, 2021 10:30 am||x4000Bughunter||Status||new => closed|
|Apr 20, 2021 10:30 am||x4000Bughunter||Resolution||open => not fixable|
|Apr 20, 2021 10:30 am||x4000Bughunter||Fixed in Version||=> 2.805 Relentless On Several Levels|
|Apr 20, 2021 10:30 am||x4000Bughunter||Note Added: 0061153|