Jianghua Yang <yjhjstz@gmail.com> writes:
> That said, the patch does fix a real diagnostic problem. In the
> original code, when dup() fails with EMFILE, the -1 return value is
> passed directly to fdopen(), which fails with EBADF. The user sees:
> pg_dump: error: could not open output file: Bad file descriptor
> which is misleading -- the actual cause is fd exhaustion, not a bad
> descriptor. With the patch, errno is preserved correctly, so the
> message becomes:
> pg_dump: error: could not open output file: Too many open files
> which gives the user actionable information.
Fair point. Still, this is such an unlikely edge-case that
I don't think it's worth a back-patch. Let's just do HEAD.
regards, tom lane