Eclserver can sometimes run out of memory - possibly because of memory leaks that occur processing invalid queries. Unfortunately when this happens the most likely symptiom is for the fork() within gcc to fail, leading to confusion.
It would be much better if
- Failures to fork were correctly fed back to the workunit.
- Failures to fork caused eclserver to restart
- eclsever proactively recycled itself if memory started getting tight.
Note: eclccserver used in the open source version of the system doesn't suffer from these problems since it executes each compile in a separate process.
richardkchapman Should eclserver also fork()?