Commit e4e764db authored by Vincent Pelletier's avatar Vincent Pelletier

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.
parent 4a89c573
...@@ -184,6 +184,7 @@ class ClientOperationHandler(EventHandler): ...@@ -184,6 +184,7 @@ class ClientOperationHandler(EventHandler):
conn.answer(p) conn.answer(p)
def askCheckCurrentSerial(self, conn, ttid, serial, oid): def askCheckCurrentSerial(self, conn, ttid, serial, oid):
self.app.tm.register(conn.getUUID(), ttid)
self._askCheckCurrentSerial(conn, ttid, serial, oid, time.time()) self._askCheckCurrentSerial(conn, ttid, serial, oid, time.time())
def _askCheckCurrentSerial(self, conn, ttid, serial, oid, request_time): def _askCheckCurrentSerial(self, conn, ttid, serial, oid, request_time):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment