0
Completed

Crash because out of memory

7upman 2 years ago • updated by Lee "Noontide" Moon (Community Manager) 2 years ago 15

Hi guys, in the mission where I go for the Keno (together with the other cube-like shaped underlord Mira), when reaching a certain number of minions, my computer crashes despite having 8 GB RAM (under Win7pro x64). As Noontide asked, I'll post my information here. At the time of the crash, WFTO used 3.6 GB RAM. I'm using Steam, so my WFTO versionis up to date. 2016-09-09_090922.7z War for the Overworld Launcher Log.txt

Game Version:
Steam Public
Platform:
Windows
GOOD, I'M SATISFIED
Satisfaction mark by 7upman 2 years ago
Pending Customer

Hi 7upman,


Please can you include your DXDiag output as requested as well :).


Cheers,


Lee

Actually scratch that didn't see it in the 7zip file :)

Gave it some testing, really struggled to break the 3.2GB mark on this level and only succeeded after 1.2 hours of gameplay (Sped up) with an extra 200 units spawned in as well as the units that already existed on the map.


I did eventually managed to break 3.6GB after saving in this state and got the game up to a total of 4.3GB, the save completed as expected.


I don't see anything particularly suspect in your output log, nothing that would indicate an issue or exception, genuinely the only thing that occurs is WFTO cannot assign more memory to the game so it crashes. I'm not actually sure how you got that point so successfully though :) Any chance you have an earlier save of your game?


As for the memory issue it's pretty incredible you got it using that much memory, but with 8GB (Plus an extra 2GB in virtual) available it's very strange that the engine couldn't grab more from your system. Were you running a lot of other programs at the time or for example have a lot of tabs open, what else was using your memory up and did you see it hit 100% in task manager?

Please find attached the last save. I'm afraid this was quite a bit before the last and final save attempt, something like 20-30 minutes, I'd say. I had converted creatures like crazy, as this is my preferred approach. Anyway, it should give you some insight into what was happening at the time.


Also, I noticed that for several issues, saving and re-loading is the right approach to solve them. For example, Belmorne's Pass has an issue where not always the next wave is triggered, which for me resulted one time in the Empire amassing a huge army that tore through my massive defenses like they were made out of paper. Re-loading a previouos save helped in that the army that immediately stormed me was much smaller.


Regarding other open programmes at the time of the crash, the only thing that was open was my MS Virtual PC VM which takes up almost no resources (less than 50 MB RAM, I use it to run the Thunderbird e-mail client). Oh, and my anti-virus, that takes around 150 MB RAM. I had RAM issues with WFTO in the past, so I had disabled all non-essential software beforehand. Also, before the crash, Windows gave me a warning that I'm low in RAM, and suggested ending the WFTOgame application.


Kenos.7z

Update: Shortly before ending the mission (I simply overran the last Empire posts will my mighty army), my RAM usage was up to 4 GB. Saving didn't increase the RAM usage much. Please find the last save attached. Also, the Advisor warned me (quite some time before) that my dungeon is too highly populated and recommended decreasing the size. This message came just once, though.


Kenos-4GB.7z

Under Review

Thanks for those I'll look into it during the next week. (We're really swamped this week I'm afraid.) Though at this point I'm not sure there'd be much we can do in the short term, we might find other places to save some memory down the line. I'm just not sure why it's simply not allocating more free resources for you.


The Advisor warning is likely a variation on him simply letting you know that your population is full and as such the gateway can't attract more units, which definitely means you've got quite a few on your side. :)

It might be instructive to have a look at how many creatures the game has to take into account in the save. I had simply lost count myself, and then there was Mira with her host of creatures as well. Quite possible they were just too many, so maybe you could integrate an Advisor warning that some creatures should be removed if RAM is too low. Something like:


"The walls of your dungeon are weakened by the negative energy of so many creatures. Sacrifice some of them to ensure stability."


If things get worse, the next message could be:


"The walls of your dungeon are cracking under the pressure of the negative emotions of your minions. Sacrifice some of them now, or risk your dungeon collapsing."


That's just an idea, I have no idea if a) you can detect how much RAM is available at all for the game to take, and b) where to draw the line. I'm sure you'll find a clever way.


That being said, I wanted to thank you and your teammates for producing such an awesome game. By now, I like it even more that the original Dungeon Keeper 2, even if that had an awesome German localization. :-)

Pending Customer

Hello 7upman,
I think the out of memory issue was caused by a temporary issue which caused log spams.
But it was fixed in a recent hotfix, thus I believe it should not occur on your end anymore.

Can you confirm if this issue is fixed or not for you?

The issue is actually a non-issue: After I closed all and any other software that was running in the background (with the exception of anti-virus and Steam), I had no more problems, although WFTO did help itself to more than 6 GB RAM. That being said, the crashes happened even after the hotfix. That's why I think that my suggestion is still valid: After all, how else should the user know that it's high time to clean up their RAM?

I am glad you got it sorted for you and I agree something like a clear warning when memory gets low would be useful.
However most of the time we are working on a much higher layer of abstraction and keep the memory management to the game engine (Unity).
And there must be surely ways to figure the current memory load, but we can only do this if it works for all supported platforms: Win32/Win64, OSX64 and Linux64 and this is where things can get fiddly and it might be that we finally need to implement it in multiple ways, one per platform.
However I will raise a low priority improvement ticket to investigate into such feature in future.

Cheers and thanks for letting us know.

Completed - Next Patch