We use Hudson as a continuous integration system to execute automated builds (nightly and based on CVS polling) of a lot of our projects.
Some projects poll CVS every 15 minutes, some others poll every 5 minutes and some poll every hour.
Every few weeks we'll get a build that fails with the following output:
FATAL: java.io.IOException: Too many open files
java.io.IOException: java.io.IOException: Too many open files
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
The next build always worked (with 0 changes) so we always chalked it up to 2 build jobs being run at the same time and happening to have too many files open during the process.
This weekend we had a build fail Friday night (automatic nightly build) with the message and every other nightly build also failed. Somehow this triggered Hudson to continuously build every project which failed until the issue was resolved. This resulted in a build every 30 minutes or so of every project until sometime Saturday night when the issue magically disappeared.