|Summary:||St9 Bad Alloc Exception|
|Product:||UPPAAL||Reporter:||Tilo Mücke <tmuecke>|
|Component:||Engine||Assignee:||Gerd Behrmann <behrmann>|
Description Tilo Mücke 2003-09-29 17:03:52 CEST
Using a Sun Uppaal Server from Uppaal running under Windows and the memory reaches a certain limit, the following failure is released: St9 Bad Alloc Exception e.g. on Sun UltraAX with 2GB Ram and 3,6GB Swap at 2GB memory consumption and on Sun Fire 280R with 8GB Ram and 26GB Swap at 4GB memory consumption How is it possible to use the remaining memory?
Comment 1 Gerd Behrmann 2003-10-02 10:55:59 CEST
The problem is that even though the machine can have plenty of free memory, there is a limit as to how much as single process is allowed to address. Actually, there are two problems: First, uppaal is a 32-bit process (even on 64-bit Solaris). This means that there is no way that uppaal can address more than 4GB of memory. Second, the operating system only reserves a certain amount of address space for the user space process. On Windows and Linux the default amount is 2GB (the rest of the address space is assigned to the kernel). This means that even though the machine has more than 2GB, no process can address more memory. Linux can be recompiled to assign 3GB to the user space process. On Windows, you can upgrade to Windows data center edition (very expensive) to get the same effect. I don't know the exact limit on Solaris, but it seems to depend on the machine (as you discovered). I.e. it is 2GB on some machines and 4GB on others. This might be configurable. Anyway, as long as Uppaal is a 32-bit program, we cannot address more than 4GB of memory. Recompiling it is a 64-bit program is not an option at the moment, since it would instantly double the memory requirements. When developing the next version of Uppaal, we will try to take care of this problem. In the meantime, you should turn on aggressive state space reduction and the compact data structure representation.
Comment 2 Gerd Behrmann 2003-10-10 12:11:32 CEST
We now catch this exception and print an "out of memory" message and refer the user to this bug.
Comment 3 Troels Smit 2004-10-19 22:23:03 CEST
This "out" of memory occours both on DTU solaris server and my person workstation, when the process uses more than - say 150 mb of memory. A very unfortunate bug I would say since 32 bit memory access should have nothing to do with that ? Cool program anyways, s991067 @ REMOVETHIS student.dtu.dk
Comment 4 Gerd Behrmann 2004-12-03 15:22:10 CET
I got a message from Troels Smit confirming that there was no problem after all (except that UPPAAL crashes when it runs out of memory). Closing the bug.