Skip to content

Commit 010e8d4

Browse files
committed
PYTHON-1897 Don't open new threads/sockets when closing a client
1 parent 6d5d361 commit 010e8d4

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

pymongo/topology.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,9 @@ def close(self):
431431

432432
# Mark all servers Unknown.
433433
self._description = self._description.reset()
434-
self._update_servers()
434+
for address, sd in self._description.server_descriptions().items():
435+
if address in self._servers:
436+
self._servers[address].description = sd
435437

436438
# Stop SRV polling thread.
437439
if self._srv_monitor:

test/test_client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,13 @@ def test_close_stops_kill_cursors_thread(self):
743743
client.close()
744744
self.assertTrue(client._kill_cursors_executor._stopped)
745745

746+
def test_close_does_not_open_servers(self):
747+
client = rs_client(connect=False)
748+
topology = client._topology
749+
self.assertEqual(topology._servers, {})
750+
client.close()
751+
self.assertEqual(topology._servers, {})
752+
746753
def test_bad_uri(self):
747754
with self.assertRaises(InvalidURI):
748755
MongoClient("http://localhost")

0 commit comments

Comments
 (0)