Forum OpenACS Q&A: Not enough memory

Posted by Iuri Sampaio on
I was just updating my email on my profile, then i hit submit and i got this screen.
Does anyone know what it could be?

Update Basic Information

Basic Information
Error in include template "/home/yabt/yabt/packages/acs-subsite/lib/user-info": couldn't fork child process: not enough memory

2: Re: Not enough memory (response to 1)
Posted by Dave Bauer on
Sorry about that.

I restarted the AOLserver.

We get this error on and other sites regularly. I have no idea why its happening. Anytime AOLserver tries to call "exec" from a tcl script it can occur. Most often we see it in the schedled proc from acs-mail-lite to send email.

3: Re: Re: Not enough memory (response to 2)
Posted by Dave Bauer on
Oops :) I thought you experienced this problem on but its your own install.

Same issue. Try restarting AOLserver, and see if that helps. Overall it might be an issue with swap space if you are running Linux.

4: Re: Not enough memory (response to 2)
Posted by Andrew Piskorski on
Why would a page like "packages/acs-subsite/lib/user-info" be calling Tcl exec?
5: Re: Re: Not enough memory (response to 4)
Posted by Gustaf Neumann on
good question. by grepping around, i see in subsite a couple of execs around finding and converting images. however, in oacs-5-2 i count a total of 37 execs, at least some of these appear unneccessary.

anyhow, a nightly restart seems to be a good strategy these days; If you are still in memory shortage, drop unneeded packages, reduce the number of connecition threads, use ttrace, or switch to 64 bit.

Posted by Iuri Sampaio on
Well, i don't believe it is a memory shortage problem, since my website is not that huge yet, but anyway i will check with my host.
Thanks for come up with this ideas.
Posted by gustaf neumann on
the error message says that the aolserver was running out of memory during a fork. a typical situation for a fork is, when an external program is started. historically, unix made a copy of the process that called the external progam and executes it there. modern unixes don't make a full copy, but share as much as possible.

for running out of memory, there might be many different reasons. maybe, the process has a memory limit set, maybe it is running out of address space, maybe the machine has not enough swap space defined.

The amount of memory needed for the aolserver is not so much determined by the number of pages, or the size of the database, but more by the number of packages loaded and the number of connection threads defined (at least, when you have min-threads = max-threads) and you orient yourself on the configuration hints on the people running huge sites (like us).

In general, it might help if you provide some more info about your inhstallation (such as operating system, hardware, configuration parameters, etc.). Otherwise, readers can only make vague guesses about what's happening.