Fix race condition in postmaster_start_time() (#1243)

when it is executed not from the main thread we need to create a new cursor object.
This commit is contained in:
Alexander Kukushkin
2019-10-24 11:23:34 +02:00
committed by GitHub
parent d770c910fd
commit 0947ac1e43
2 changed files with 10 additions and 3 deletions
+4
View File
@@ -458,6 +458,10 @@ class TestPostgresql(BaseTestPostgresql):
def test_postmaster_start_time(self):
with patch.object(MockCursor, "fetchone", Mock(return_value=('foo', True, '', '', '', '', False))):
self.assertEqual(self.p.postmaster_start_time(), 'foo')
t = Thread(target=self.p.postmaster_start_time)
t.start()
t.join()
with patch.object(MockCursor, "execute", side_effect=psycopg2.Error):
self.assertIsNone(self.p.postmaster_start_time())