Commit 8d7b1ceb authored by Jim Fulton's avatar Jim Fulton

Fixed: were sending out of date size info on commit

Because we were computing the size info in the commit callback, which
might be before before the inderlying data were committed.  This caused the computation to be wrong in some cases.

Instead we get and send the size information after committing.
parent e3d21226
...@@ -358,6 +358,7 @@ class ZEOStorage: ...@@ -358,6 +358,7 @@ class ZEOStorage:
self.stats.commits += 1 self.stats.commits += 1
self.storage.tpc_finish(self.transaction, self._invalidate) self.storage.tpc_finish(self.transaction, self._invalidate)
self.connection.async('info', self.get_size_info())
# Note that the tid is still current because we still hold the # Note that the tid is still current because we still hold the
# commit lock. We'll relinquish it in _clear_transaction. # commit lock. We'll relinquish it in _clear_transaction.
tid = self.storage.lastTransaction() tid = self.storage.lastTransaction()
...@@ -366,8 +367,7 @@ class ZEOStorage: ...@@ -366,8 +367,7 @@ class ZEOStorage:
def _invalidate(self, tid): def _invalidate(self, tid):
if self.invalidated: if self.invalidated:
self.server.invalidate(self, self.storage_id, tid, self.server.invalidate(self, self.storage_id, tid, self.invalidated)
self.invalidated, self.get_size_info())
def tpc_abort(self, tid): def tpc_abort(self, tid):
if not self._check_tid(tid): if not self._check_tid(tid):
......
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