Strange Error in diagnostics CHeap::New - Insufficient memory for alloc!
syslock
Junior Member
in AMX Hardware
Some times when I reboot an NI3000 that I'm re-programming for a client the NI crashes flooding diagnostics with the message below.
(0000192435) CHeap::New - Insufficient memory for alloc! Task=tInterpreter)
(0000192440) CHeap::New - Error (Task=tInterpreter)
(0000192444) RunCode - DevUnion Allocation failed
If anyone can shed some light on this message that would be great.
NI Firmware 3.0.453
mem
The largest free block of memory is 179088 bytes.
(0000192435) CHeap::New - Insufficient memory for alloc! Task=tInterpreter)
(0000192440) CHeap::New - Error (Task=tInterpreter)
(0000192444) RunCode - DevUnion Allocation failed
If anyone can shed some light on this message that would be great.
NI Firmware 3.0.453
mem
The largest free block of memory is 179088 bytes.
Comments
-
if you can (before it crashes) instead of using the simple MEM command, run SHOW MEM to see all of the memory types, also what is the DUET allocation set to, you may have a instance where there is too much duet allocated taking away from the main working memory.
-
Chances are you are out of non-volatile memory. For some reason, AMX defaults variables that are not specified to non-volatile on definition, and there is far less non-volatile memory available than volatile. So, it's my habit (since getting burned badly by this), to specifically declare every variable VOLATILE unless it needs to be otherwise. It's especially pertinent in modules that you may have multiple instances running at the same time in the same code. They can eat up your memory in no time.
-
The non-volatile concept would more likely be a clue if this issue didn't come and go, with the same code, from boot to boot.
We see it occasionally on a boot, even on older systems running code that worked for years, and another reboot typically corrects it with no changes of any kind.
AMX hasn't been able to help. -
Thanks for the suggestions.
I always specify variables as volatile, I've also removed the one duet module I was using and cooked my own and set duet memory from 8M to 4M. So we will see if any of this helps thanks.
>get duet memory
Duet Memory: 4M
>show mem
Display Memory
Volatile Free : 4366980/33554432 (largest free block in bytes/max physical)
NonVolatile Free: 1030250/1047536 (bytes free/max physical)
Disk Free : 19912704/31954944 (bytes of free space/max physical)
Duet Memory Free : 1193032 (bytes)
Partition 1 - 1193032 (bytes)
Total Collections - 4
Average Time Between Collections - 5667ms
Partition 2 - <UNKNOWN>
Leave a Comment
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums