From: Tom Lane Date: Fri, 17 Nov 2000 00:24:03 +0000 (+0000) Subject: Suppress occasional failure of final DROP DATABASE due to X-Git-Tag: REL7_1_BETA~157 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4e5146b883f262d0074a3cbabb766508d087a0c5;p=postgresql Suppress occasional failure of final DROP DATABASE due to race condition --- old backend may not have shut down by the time we try to do the DROP. --- diff --git a/src/interfaces/perl5/test.pl b/src/interfaces/perl5/test.pl index c9e0cf6c5e..9d64336a69 100644 --- a/src/interfaces/perl5/test.pl +++ b/src/interfaces/perl5/test.pl @@ -1,6 +1,6 @@ #!/usr/local/bin/perl -w -# $Id: test.pl,v 1.12 2000/03/11 02:57:24 tgl Exp $ +# $Id: test.pl,v 1.13 2000/11/17 00:24:03 tgl Exp $ # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -260,6 +260,13 @@ if ($DEBUG) { $conn = Pg::connectdb("dbname=$dbmain"); die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status; +# Race condition: it's quite possible that the DROP command will arrive +# at the new backend before the old backend has finished shutting down, +# resulting in an error message. +# There doesn't seem to be any more graceful way around this than to +# insert a small delay ... +sleep(1); + $result = $conn->exec("DROP DATABASE $dbname"); die $conn->errorMessage unless PGRES_COMMAND_OK eq $result->resultStatus;