Skip to content

Commit 2ffbaeb

Browse files
committed
always end session
1 parent 5b3b757 commit 2ffbaeb

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

django_mongodb_backend/base.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,22 +211,27 @@ def _commit(self):
211211
if self.session:
212212
with debug_transaction(self, "session.commit_transaction()"):
213213
self.session.commit_transaction()
214-
self.session.end_session()
215-
self.session = None
214+
self._end_session()
216215

217216
@requires_transaction_support
218217
def _rollback(self):
219218
if self.session:
220219
with debug_transaction(self, "session.abort_transaction()"):
221220
self.session.abort_transaction()
222-
self.session = None
221+
self._end_session()
223222

224223
def _start_transaction(self):
224+
# Private API, specific to this backend.
225225
if self.session is None:
226226
self.session = self.connection.start_session()
227227
with debug_transaction(self, "session.start_transaction()"):
228228
self.session.start_transaction()
229229

230+
def _end_session(self):
231+
# Private API, specific to this backend.
232+
self.session.end_session()
233+
self.session = None
234+
230235
@requires_transaction_support
231236
def _start_transaction_under_autocommit(self):
232237
# Implementing this hook (intended only for SQLite), allows
@@ -258,7 +263,8 @@ def close_pool(self):
258263
"""Close the MongoClient."""
259264
# Clear commit hooks and session.
260265
self.run_on_commit = []
261-
self.session = None
266+
if self.session:
267+
self._end_session()
262268
connection = self.connection
263269
if connection is None:
264270
return

0 commit comments

Comments
 (0)