Обсуждение: small regression script improvement
This suggested patch makes sure that the regression script can actually connect to the database rather than falling through after 60 seconds, as discussed on -hackers. cheers andrew Index: pg_regress.sh =================================================================== RCS file: /cvsroot/pgsql/src/test/regress/pg_regress.sh,v retrieving revision 1.64 diff -c -r1.64 pg_regress.sh *** pg_regress.sh 5 Jan 2006 03:01:38 -0000 1.64 --- pg_regress.sh 18 Jun 2006 22:19:53 -0000 *************** *** 457,471 **** sleep 1 done ! if kill -0 $postmaster_pid >/dev/null 2>&1 then echo "running on port $PGPORT with pid $postmaster_pid" ! else echo echo "$me: postmaster did not start" echo "Examine $LOGDIR/postmaster.log for the reason." echo (exit 2); exit fi else # not temp-install --- 457,482 ---- sleep 1 done ! kill -0 $postmaster_pid >/dev/null 2>&1 ! running=$? ! if test $running -eq 0 -a $i -lt $max then echo "running on port $PGPORT with pid $postmaster_pid" ! elif test $running -neq 0 ! then ! # postmaster is not running echo echo "$me: postmaster did not start" echo "Examine $LOGDIR/postmaster.log for the reason." echo (exit 2); exit + else + # postmaster is running but we can't connect + echo + echo "$me: postmaster started but did not accept connections after $max seconds" + echo + kill $postmaster_pid + (exit 2); exit fi else # not temp-install
Andrew Dunstan <andrew@dunslane.net> writes: > This suggested patch makes sure that the regression script can actually > connect to the database rather than falling through after 60 seconds, as > discussed on -hackers. Oh, I see what you mean. But surely that's the hard way. The script should just fail where it currently "break"s out of the loop. It's not any longer and it permits a more specific error message. regards, tom lane *** src/test/regress/pg_regress.sh.orig Wed Jan 4 22:01:38 2006 --- src/test/regress/new/pg_regress.sh Sun Jun 18 18:42:24 2006 *************** *** 446,472 **** 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" ! else ! echo ! echo "$me: postmaster did not start" ! echo "Examine $LOGDIR/postmaster.log for the reason." ! echo ! (exit 2); exit ! fi else # not temp-install --- 446,473 ---- i=`expr $i + 1` if [ $i -ge $max ] then ! : timeout ! echo ! echo "$me: postmaster is not accepting connections" ! echo "Examine $LOGDIR/postmaster.log for the reason." ! echo ! (exit 2); exit fi if kill -0 $postmaster_pid >/dev/null 2>&1 then : still starting up else ! : postmaster failed ! echo ! echo "$me: postmaster failed" ! echo "Examine $LOGDIR/postmaster.log for the reason." ! echo ! (exit 2); exit fi sleep 1 done ! echo "running on port $PGPORT with pid $postmaster_pid" else # not temp-install
Tom Lane wrote: >Andrew Dunstan <andrew@dunslane.net> writes: > > >>This suggested patch makes sure that the regression script can actually >>connect to the database rather than falling through after 60 seconds, as >>discussed on -hackers. >> >> > >Oh, I see what you mean. But surely that's the hard way. The script >should just fail where it currently "break"s out of the loop. It's >not any longer and it permits a more specific error message. > > > > Good point. I'll do that. cheers andrew