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