> 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