Solution to "not enough storage" errors

by Spender | 04/01/2009 19:32:54

Spender

Since the cause of the 100 or so of these errors I've reported hasn't been fixed, I did a little investigation of my own.

Some notes about my system:
Vista X64 SP1
Running at 2560x1600 in maximized window mode
All effects set to "High"
6GB RAM, 8GB pagefile

Some things that do not solve the problem:
Clearing the cache/WTF/WDB
Running the repair tool
Disabling all addons (though disabling addons can make the problem take longer to appear purely due to the fact that the addons use up memory, and this is a memory-related issue)
REMOVING all addons

If you've seen this error, here's what it looks like:

This application has encountered a critical error:



Not enough storage is available to process this command.



Program: C:\Program Files (x86)\World of Warcraft\Wow.exe

File: .\MapMem.cpp

Line: 517



Requested 1949222 bytes of memory



It generally happens in-flight or sometimes in Dalaran when heavily populated (both cases make memory usage shoot up).

I'll reply to this post with an error log demonstrating the bug with all addons disabled.

There are a number of posts in these forums with misinformation about this bug. First, it's not a disk space issue (I presume the "not enough storage" message comes from an ambiguous error code -> string conversion within WoW). So freeing up disk space, as suggested in several posts, is completely irrelevant to this bug.

I've been monitoring my WoW process, particularly paying attention to the commit size column, and noticed before the crashes that it was around 1.7GB. Note that this isn't an exact measure of the amount of virtual address space in use by WoW, since virtual allocations can be either in a non-committed (reserved) or committed state. AFAIK it's not possible to get a view of WoW's actual address space without violating the AUP/EULA, so I have not done so. However, I imagine the problem is this:

The commit size + reserved size (some of the reserved ranges won't be available for heap/mmap allocations from WoW) + address space fragmentation is causing a situation where there's no place for the ~2MB attempted allocation to go, causing it to fail and producing the error above. The WoW binary is not large address aware, so even on 64bit OSes it is restricted to a 2GB userland virtual address space. It's not possible to modify the WoW binary (say with editbin.exe /LARGEADDRESSAWARE) to enable this support, as some game verification performed at login time includes the PE header in its hash calculations.

So, we need Blizzard to acknowledge this problem and either enable large address awareness, or perform some cache trimming at these locations where they fail on virtual address space exhaustion. Physical memory isn't at issue here: only 3GB of my 6GB of physical memory was in use at the time of the crashes. The bug is not incredibly common among WoW users because it requires high graphics settings (turning effects to "low" cuts commit size from 1.7GB to 700MB in Dalaran, for instance).

I hope this post was informative and will result in a solution for the large number of users I've seen while searching the forums for this problem whose problems have gone unanswered.

-spender

by Maaven | 04/02/2009 01:27:59

Maaven

I'll add your information to our internal report.
Maaven
Blizzard QA
Good morning, on this day we become legendary.

Blizzard Announcement Recent Blizzard Announcements

 



Loaded in 0.02468 seconds