From e4e764db74dbe46db9d32a135ea233cc8a380a12 Mon Sep 17 00:00:00 2001
From: Vincent Pelletier <vincent@nexedi.com>
Date: Sun, 27 Oct 2013 13:05:01 +0100
Subject: [PATCH] storage.handler.client: Create a transaction when checking
 current serial.

This fixes a bug causing a crash during tpc_finish phase when a storage
involved in a transaction does not receive any object, but receives at
least one CheckCurrentSerial request: no transaction was registered, and
storage would fail to lock transaction when requested by master during
tpc_finish phase.
---
 neo/storage/handlers/client.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/neo/storage/handlers/client.py b/neo/storage/handlers/client.py
index cd4eb8ab..6e594a44 100644
--- a/neo/storage/handlers/client.py
+++ b/neo/storage/handlers/client.py
@@ -184,6 +184,7 @@ class ClientOperationHandler(EventHandler):
         conn.answer(p)
 
     def askCheckCurrentSerial(self, conn, ttid, serial, oid):
+        self.app.tm.register(conn.getUUID(), ttid)
         self._askCheckCurrentSerial(conn, ttid, serial, oid, time.time())
 
     def _askCheckCurrentSerial(self, conn, ttid, serial, oid, request_time):
-- 
2.30.9