Re: Cygwin - make check broken

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: pgsql-hackers@postgresql.org, Rocco Altier <RoccoA@Routescape.com>
Date: 2005-08-07T16:02:24Z
Lists: pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> ... The second part should not be 
> applied - I simply include it to illustrate the hack (taken from a 
> recent clue on the Cygwin mailing list) that I found necessary to get 
> around brokenness on the latest release of Cygwin. The good news is 
> that they do seem to be trying to find out what broke and fix it.

You mean this?

> *** src/backend/storage/file/fd.c	4 Jul 2005 04:51:48 -0000	1.118
> --- src/backend/storage/file/fd.c	7 Aug 2005 13:22:00 -0000
> ***************
> *** 327,332 ****
> --- 327,334 ----
>   				elog(WARNING, "dup(0) failed after %d successes: %m", used);
>   			break;
>   		}
> + 		if (used >= 250)
> + 			break;
>  
>   		if (used >= size)
>   		{

Looking at that code, I wonder why we don't make the loop stop at
max_files_per_process opened files --- the useful result will be
bounded by that anyhow.  Actively running the system out of FDs,
even momentarily, doesn't seem like a friendly thing to do.

This wouldn't directly solve your problem unless you reduced the
default value of max_files_per_process, but at least that would
be something reasonable to do instead of hacking the code.

			regards, tom lane