Skip to content

Commit

Permalink
Numerous fixes in response to: zopefoundation/ZODB#93
Browse files Browse the repository at this point in the history
  • Loading branch information
Jim Fulton committed Jul 28, 2016
1 parent 7af9145 commit 03498c0
Show file tree
Hide file tree
Showing 8 changed files with 13 additions and 28 deletions.
4 changes: 1 addition & 3 deletions src/ZEO/ClientStorage.py
Expand Up @@ -54,8 +54,6 @@
# max signed 64-bit value ~ infinity :) Signed cuz LBTree and TimeStamp
m64 = b'\x7f\xff\xff\xff\xff\xff\xff\xff'

from ZODB.ConflictResolution import ResolvedSerial

def tid2time(tid):
return str(TimeStamp(tid))

Expand Down Expand Up @@ -748,7 +746,7 @@ def tpc_vote(self, txn):
self._async('storea', oid, committed, data, id(txn))
tbuf.resolve(oid, data)
else:
tbuf.serial(oid, ResolvedSerial)
tbuf.server_resolve(oid)

vote_attempts += 1

Expand Down
1 change: 0 additions & 1 deletion src/ZEO/StorageServer.py
Expand Up @@ -42,7 +42,6 @@
from ZEO.Exceptions import AuthError
from ZEO.monitor import StorageStats
from ZEO.asyncio.server import Delay, MTDelay, Result
from ZODB.ConflictResolution import ResolvedSerial
from ZODB.loglevels import BLATHER
from ZODB.POSException import StorageError, StorageTransactionError
from ZODB.POSException import TransactionError, ReadOnlyError, ConflictError
Expand Down
9 changes: 2 additions & 7 deletions src/ZEO/TransactionBuffer.py
Expand Up @@ -25,8 +25,6 @@
import tempfile
import ZODB.blob

from ZODB.ConflictResolution import ResolvedSerial

from ZEO._compat import Pickler, Unpickler

class TransactionBuffer:
Expand Down Expand Up @@ -66,11 +64,8 @@ def resolve(self, oid, data):
self.store(oid, data)
self.client_resolved[oid] = self.count - 1

def serial(self, oid, serial):
if isinstance(serial, Exception):
self.exception = serial # This transaction will never be committed
elif serial == ResolvedSerial:
self.server_resolved.add(oid)
def server_resolve(self, oid):
self.server_resolved.add(oid)

def storeBlob(self, oid, blobfilename):
self.blobs.append((oid, blobfilename))
Expand Down
1 change: 0 additions & 1 deletion src/ZEO/asyncio/client.py
Expand Up @@ -6,7 +6,6 @@
import trollius as asyncio

from ZEO.Exceptions import ClientDisconnected
from ZODB.ConflictResolution import ResolvedSerial
import concurrent.futures
import functools
import logging
Expand Down
4 changes: 2 additions & 2 deletions src/ZEO/tests/Cache.py
Expand Up @@ -44,8 +44,8 @@ def checkUndoInvalidation(self):

self._storage.tpc_finish(t)

assert len(oids) == 1
assert oids[0] == oid
[uoid] = oids
assert uoid == oid
data, revid = self._storage.load(oid, '')
obj = zodb_unpickle(data)
assert obj == MinPO(24)
9 changes: 3 additions & 6 deletions src/ZEO/tests/ConnectionTests.py
Expand Up @@ -28,8 +28,7 @@
from ZODB.POSException import ReadOnlyError, ConflictError
from ZODB.tests.StorageTestBase import StorageTestBase
from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase \
import zodb_pickle, zodb_unpickle, handle_all_serials, handle_serials
from ZODB.tests.StorageTestBase import zodb_pickle, zodb_unpickle
import ZODB.tests.util

import transaction
Expand Down Expand Up @@ -1065,14 +1064,12 @@ def run(self):
data = MinPO("%s.%s.t%d.o%d" % (tname, c.__name, i, j))
#print(data.value)
data = zodb_pickle(data)
s = c.store(oid, ZERO, data, '', t)
c.__serials.update(handle_all_serials(oid, s))
c.store(oid, ZERO, data, '', t)

# Vote on all servers and handle serials
for c in clients:
#print("%s.%s.%s vote" % (tname, c.__name, i))
s = c.tpc_vote(t)
c.__serials.update(handle_all_serials(None, s))
c.tpc_vote(t)

# Finish on all servers
for c in clients:
Expand Down
8 changes: 4 additions & 4 deletions src/ZEO/tests/testTransactionBuffer.py
Expand Up @@ -14,7 +14,6 @@
import random
import unittest

from ZODB.ConflictResolution import ResolvedSerial
from ZEO.TransactionBuffer import TransactionBuffer

def random_string(size):
Expand All @@ -26,10 +25,11 @@ def new_store_data():
"""Return arbitrary data to use as argument to store() method."""
return random_string(8), random_string(random.randrange(1000))

def store(tbuf, serial=None):
def store(tbuf, resolved=False):
data = new_store_data()
tbuf.store(*data)
tbuf.serial(data[0], serial)
if resolved:
tbuf.server_resolve(data[0])
return data

class TransBufTests(unittest.TestCase):
Expand All @@ -46,7 +46,7 @@ def checkOrderPreserved(self):
data = []
for i in range(10):
data.append((store(tbuf), False))
data.append((store(tbuf, ResolvedSerial), True))
data.append((store(tbuf, True), True))

for i, (oid, d, resolved) in enumerate(tbuf):
self.assertEqual((oid, d), data[i][0])
Expand Down
5 changes: 1 addition & 4 deletions src/ZEO/tests/testZEO.py
Expand Up @@ -538,7 +538,6 @@ def getConfig(self):
def checkStoreBlob(self):
import transaction
from ZODB.blob import Blob
from ZODB.tests.StorageTestBase import handle_serials
from ZODB.tests.StorageTestBase import ZERO
from ZODB.tests.StorageTestBase import zodb_pickle

Expand Down Expand Up @@ -579,8 +578,7 @@ def fail(*a):

def checkLoadBlob(self):
from ZODB.blob import Blob
from ZODB.tests.StorageTestBase import zodb_pickle, ZERO, \
handle_serials
from ZODB.tests.StorageTestBase import zodb_pickle, ZERO
import transaction

somedata = b'a' * 10
Expand Down Expand Up @@ -629,7 +627,6 @@ class BlobAdaptedFileStorageTests(FullGenericTests, CommonBlobTests):
def checkStoreAndLoadBlob(self):
import transaction
from ZODB.blob import Blob
from ZODB.tests.StorageTestBase import handle_serials
from ZODB.tests.StorageTestBase import ZERO
from ZODB.tests.StorageTestBase import zodb_pickle

Expand Down

0 comments on commit 03498c0

Please sign in to comment.