Fix timeouts in PostgresNode::psql
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 1 Mar 2017 18:52:38 +0000 (13:52 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 1 Mar 2017 19:18:51 +0000 (14:18 -0500)
Newer Perl or IPC::Run versions default to appending the filename to string
exceptions, e.g. the exception

    psql timed out

 is thrown as

    psql timed out at /usr/share/perl5/vendor_perl/IPC/Run.pm line 2961.

To handle this, match exceptions with !~ rather than ne.

From: Craig Ringer <craig@2ndquadrant.com>
Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
src/test/perl/PostgresNode.pm

index 4018f0af1fc2ed6dd00bdd0bb6cb443fe7019868..e5cb348f4c824828488007df0217083cf522fdda 100644 (file)
@@ -1139,7 +1139,7 @@ sub psql
            # IPC::Run::run threw an exception. re-throw unless it's a
            # timeout, which we'll handle by testing is_expired
            die $exc_save
-             if (blessed($exc_save) || $exc_save ne $timeout_exception);
+             if (blessed($exc_save) || $exc_save !~ /^\Q$timeout_exception\E/);
 
            $ret = undef;