From c99bfe116fef648b17796367abcbf4e2bc4b53b5 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 28 Mar 2021 09:52:55 +0200 Subject: [PATCH] [ticket/16740] Improve open queries handling & do not close freed connection PHPBB3-16740 --- phpBB/phpbb/db/driver/postgres.php | 9 +++++++-- tests/test_framework/phpbb_database_test_case.php | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/phpBB/phpbb/db/driver/postgres.php b/phpBB/phpbb/db/driver/postgres.php index b004ecee30..cd17f3294d 100644 --- a/phpBB/phpbb/db/driver/postgres.php +++ b/phpBB/phpbb/db/driver/postgres.php @@ -386,9 +386,9 @@ class postgres extends \phpbb\db\driver\driver return $cache->sql_freeresult($safe_query_id); } - if (isset($this->open_queries[(int) $safe_query_id])) + if (isset($this->open_queries[$safe_query_id])) { - unset($this->open_queries[(int) $safe_query_id]); + unset($this->open_queries[$safe_query_id]); return pg_free_result($query_id); } @@ -466,6 +466,11 @@ class postgres extends \phpbb\db\driver\driver */ function _sql_close() { + // Released resources are already closed, return true in this case + if (get_resource_type($this->db_connect_id) === 'Unknown') + { + return true; + } return @pg_close($this->db_connect_id); } diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php index ebaf573753..c46bbe11c3 100644 --- a/tests/test_framework/phpbb_database_test_case.php +++ b/tests/test_framework/phpbb_database_test_case.php @@ -29,7 +29,7 @@ abstract class phpbb_database_test_case extends TestCase static protected $install_schema_file; - static protected $phpunit_version; + static protected $phpunit_version; public function __construct($name = NULL, array $data = [], $dataName = '') {