From 4cd9d6e7c7ae676f5cda0bdfd6fc839680b97b69 Mon Sep 17 00:00:00 2001
From: "Stephen R. van den Berg" <srb@cuci.nl>
Date: Thu, 22 Jun 2017 10:13:54 +0200
Subject: [PATCH] pgsql: Avoid dangling portals on errors.

---
 lib/modules/Sql.pmod/pgsql.pike | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 37d7a3c652..e9e94c82e9 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -1042,7 +1042,7 @@ private void procmessage() {
           portal=0;
           break;
         case 'E': {
-          if(!_readyforquerycount)
+          if (_portalsinflight <= 1 && !_readyforquerycount)
             sendsync();
           PD("%O ErrorResponse %O\n",
            objectp(portal)&&(portal._portalname||portal._preparedname),
@@ -1084,8 +1084,6 @@ private void procmessage() {
             case "25P02":    // Preserve last error message
               USERERROR(a2nls(lastmessage));
           }
-          if(objectp(portal))
-            portal->_releasesession();
           break;
         }
         case 'N': {
-- 
GitLab