This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PostgreSQL and CVS DLL


Norman,

On Wed, Jan 09, 2002 at 11:39:56AM -0500, Norman Vine wrote:
> OK -- using snapshots from cygwin.com
> 
> postgres runs fine using snapshot DLL dated 20011231
> crashes for me with all DLL's dated 20020104 and later
> 
> I have a locally built DLL 20020103 that also crashes

Please try to determine what specific Cygwin change is causing the
postmaster problem.  Since the date range is small, searching cygwin-cvs
should not take too long.

> FWIW
> In an attempt to see if this was just an introduced 'incompatability'
> with previous cygwin dlls I tried building postgres from scratch
> with todays Cygwin CVS files
> make check failed for me with < failed to createdb >  
> This could be do to local error however as I am not all that
> familiar with the postgres build 
> < I used script from Cygwin postgres distribution >

See attached for how to fix the above make check problem.  I normal would
use an URL, but the PostgreSQL archvies are "under construction" right
now.  Please read the README regarding other known make check problems.

Thanks,
Jason
--- Begin Message ---
Jason Tishler <jason@tishler.net> writes:
> I just checked one of my old favorites, "The UNIX Programming
> Environment," by Kernighan and Pike, 1984.  It appears that "until"
> is understood by the Bourne shell back then, so its use should be OK.

Yeah, that's what I thought.  I ended up applying the attached patch;
this not only avoids the timing problem but has more reliable detection
of postmaster startup failure than the original code.

			regards, tom lane


*** src/test/regress/pg_regress.sh.orig	Sun Sep 16 12:11:11 2001
--- src/test/regress/pg_regress.sh	Thu Jan  3 16:52:05 2002
***************
*** 353,358 ****
--- 353,379 ----
      "$bindir/postmaster" -D "$PGDATA" -F $postmaster_options >"$LOGDIR/postmaster.log" 2>&1 &
      postmaster_pid=$!
  
+     # Wait till postmaster is able to accept connections (normally only
+     # a second or so, but Cygwin is reportedly *much* slower).  Don't
+     # wait forever, however.
+     i=0
+     max=60
+     until "$bindir/psql" $psql_options template1 </dev/null 2>/dev/null
+     do
+         i=`expr $i + 1`
+         if [ $i -ge $max ]
+         then
+             break
+         fi
+         if kill -0 $postmaster_pid >/dev/null 2>&1
+         then
+             : still starting up
+         else
+             break
+         fi
+         sleep 1
+     done
+ 
      if kill -0 $postmaster_pid >/dev/null 2>&1
      then
          echo "running on port $PGPORT with pid $postmaster_pid"
***************
*** 363,371 ****
          echo
          (exit 2); exit
      fi
- 
-     # give postmaster some time to pass WAL recovery
-     sleep 3
  
  else # not temp-install
  
--- 384,389 ----
--- End Message ---

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]