Re: Cygwin - make check broken

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Cygwin - make check broken
Дата
Msg-id 42F64DB2.8090105@dunslane.net
обсуждение исходный текст
Ответ на Re: Cygwin - make check broken  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Cygwin - make check broken  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers

Tom Lane wrote:

>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.
>
>
>
>

Turns out that works as is on Cygwin - no adjustment necessary, at least
for me. 250 was just a number I plucked out of the air to get me around
the crashing problem. I just ran successfully with the attached patch.
Given the problems the Cygwin people are having with the stable branch
from just this piece of code, I think this or something similar should
be applied to the 8.0 branch as well as HEAD.

cheers

andrew


Index: src/backend/storage/file/fd.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/storage/file/fd.c,v
retrieving revision 1.118
diff -c -r1.118 fd.c
*** src/backend/storage/file/fd.c    4 Jul 2005 04:51:48 -0000    1.118
--- src/backend/storage/file/fd.c    7 Aug 2005 17:00:10 -0000
***************
*** 315,321 ****
      fd = (int *) palloc(size * sizeof(int));

      /* dup until failure ... */
!     for (;;)
      {
          int            thisfd;

--- 315,321 ----
      fd = (int *) palloc(size * sizeof(int));

      /* dup until failure ... */
!     for ( ; used <= max_files_per_process ; )
      {
          int            thisfd;


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stefan Kaltenbrunner
Дата:
Сообщение: psql and ROLES
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: Cygwin - make check broken