Skip to content

Commit f5495ca

Browse files
committed
Explicitly close _list_collection_names cursor
1 parent d95ce5d commit f5495ca

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

pymongo/asynchronous/database.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,8 @@ async def create_collection(
621621
and name in await self._list_collection_names(filter={"name": name}, session=s)
622622
):
623623
raise CollectionInvalid("collection %s already exists" % name)
624+
if s:
625+
s._leave_alive = False
624626
coll = AsyncCollection(
625627
self,
626628
name,
@@ -1206,10 +1208,12 @@ async def _list_collection_names(
12061208
if not filter or (len(filter) == 1 and "name" in filter):
12071209
kwargs["nameOnly"] = True
12081210

1209-
return [
1210-
result["name"]
1211-
async for result in await self._list_collections_helper(session=session, **kwargs)
1212-
]
1211+
cursor = await self._list_collections_helper(session=session, **kwargs)
1212+
results = [result["name"] async for result in cursor]
1213+
1214+
await cursor.close()
1215+
1216+
return results
12131217

12141218
async def list_collection_names(
12151219
self,

pymongo/synchronous/database.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,8 @@ def create_collection(
621621
and name in self._list_collection_names(filter={"name": name}, session=s)
622622
):
623623
raise CollectionInvalid("collection %s already exists" % name)
624+
if s:
625+
s._leave_alive = False
624626
coll = Collection(
625627
self,
626628
name,
@@ -1200,9 +1202,12 @@ def _list_collection_names(
12001202
if not filter or (len(filter) == 1 and "name" in filter):
12011203
kwargs["nameOnly"] = True
12021204

1203-
return [
1204-
result["name"] for result in self._list_collections_helper(session=session, **kwargs)
1205-
]
1205+
cursor = self._list_collections_helper(session=session, **kwargs)
1206+
results = [result["name"] for result in cursor]
1207+
1208+
cursor.close()
1209+
1210+
return results
12061211

12071212
def list_collection_names(
12081213
self,

0 commit comments

Comments
 (0)