Runtime: VirtualAlloc of xx bytes failed with errno=1455 fatal error: out of memory
When performing a backup using the windows desktop application, the backup finishes with an error status message - fatal error: out of memory, and you might see stack trace similar to the following example.
|C:/Go1.19.3/src/runtime/panic.go:1047 +0x65 fp=0x904dfffa78 sp=0x904dfffa48 pc=0x7ff655199e65|
|C:/Go1.19.3/src/runtime/mem_windows.go:83 +0x1c9 fp=0x904dfffad8 sp=0x904dfffa78 pc=0x7ff655179e29|
This kind of error is a result of the application requesting more memory than is currently available on the system.
- Check the memory usage, and if possible, stop other applications that may be using large amounts of system memory.
- Check your windows event logs around the time the error occurred in your backup logs
- In the eazybackup desktop application, you can optionally edit your Protected Item Schedule and select the option to "prefer temp files over memory". This option will reduce performance, but if upgrading system memory is not an option you can consider this alternative.
- This issue on rare cases could also be caused by memory fragmentation or other issues with the operating system's memory management.
Technical details of what's happening here:
This error message is a stack trace of a runtime error that occurred in the application which it written in Go. The error occurred in the memory management part of the runtime, specifically in the
sysUsedOS() function which is responsible for requesting memory from the operating system. The error indicates that the runtime was unable to allocate a contiguous block of memory of 0x8000000 bytes in size, which is 128 MB.
The stack trace shows that the error occurred in the
mheap package, which is responsible for allocating memory for the Go program. The
mheap package attempted to allocate a contiguous block of memory by calling the
sysUsedOS() function, but the call failed, resulting in the panic.