[Glass] cannot allocate memory

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Tue Jul 7 09:59:37 PDT 2015



On 07/07/2015 08:35 AM, Otto Behrens via Glass wrote:
> Hi,
>
> We call "System class >> performOnServer:" often from our seaside
> server sessions. We get an error "HostPerform failed; errno 12, Cannot
> allocate memory".
>
> This happens at the end of the day, while sessions have been running
> all day, and have been quite busy.
>
> It appears as if there is a memory leak in this function; I don't
> really understand what memory it is trying to allocate here.
We don't think this is a leak per se ... when you do the 
performOnServer:  and that forks the linux process the size of the stack 
or the amount of memory allocated shouldn't be a direct factor ... I 
understand that the virtual memory mapping tables are copied during the 
fork ...

Presumably you are failing because the overall system is getting close 
to running out of swap space which can happen if and when the memory is 
allocated as real memory (and consuming swap space) ...

A straightforward solution would be to allocate more swap space  to 
allow the processes to get over the hump.

 From your configuration parameters, it doesn't look like the TOC is not 
huge, but as we've recently discussed with Mariano, the gems will 
dynamically allocate/deallocate memory pages but an idle gem will sit on 
it's allocated pages until a marksweep triggers a reduction in memory 
consumption ...

running statmon and recording the output of top peridocally would give 
us a chance to do further diagnosis, since at this point in time we're 
largely guessing:)
>
> We're assuming the System class >> performOnServer: is the way in
> GemStone to execute shell commands. Should we be using another way?
>

Nope this is the right way ...

Dale


More information about the Glass mailing list