I suppose you are running on some BSD variant? BSD is notorious for promising more than it can deliver with respect to number of open files per process. This is a kernel bug, not a Postgres bug.
You can adjust Postgres' max_files_per_process setting to compensate for the kernel's lying about its capabilities.
(Postgres is in fact one of the most robust applications I know of in terms of not going belly-up in response to EMFILE or ENFILE. However, if there are not any spare descriptors to close, there's not a lot we can do except fail.)
regards, tom lane
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])