From 8a26e40de6d610a505c7e6fa81178bbf55dd2121 Mon Sep 17 00:00:00 2001 From: mlarribe <38043307+mlarribe@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:58:08 +0200 Subject: [PATCH] Update session.ex add ServerSession.next_txn_num when ending the session to prevent silent no-write operation fix retryable_write faulty, fix the issue that prevent replace_one to occures on concecutive update on the same document when sessions is checkin and then reused again (same document or different does matter, it's stays silently blocked until the session expires) --- lib/mongo/session.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/mongo/session.ex b/lib/mongo/session.ex index 0ed33d6..bb4f054 100644 --- a/lib/mongo/session.ex +++ b/lib/mongo/session.ex @@ -244,7 +244,8 @@ defmodule Mongo.Session do """ @spec end_session(GenServer.server(), Session.t()) :: :ok | :error def end_session(topology_pid, session) do - with {:ok, session_server} <- call(session, :end_session) do + with {:ok, session_server} <- call(session, :end_session), + session_server <- ServerSession.next_txn_num(session_server) do Topology.checkin_session(topology_pid, session_server) end end