Commit 8e2007e6 authored by Julien Muchembled's avatar Julien Muchembled

tests: fix random failures in ReplicationTests.testCheckReplicas

parent b2a20553
...@@ -706,6 +706,7 @@ class ClientConnection(Connection): ...@@ -706,6 +706,7 @@ class ClientConnection(Connection):
self._closure() self._closure()
else: else:
self._connectionCompleted() self._connectionCompleted()
self.writable()
def _connectionCompleted(self): def _connectionCompleted(self):
self.writable = super(ClientConnection, self).writable self.writable = super(ClientConnection, self).writable
......
...@@ -154,6 +154,11 @@ class SerializedEventManager(EventManager): ...@@ -154,6 +154,11 @@ class SerializedEventManager(EventManager):
Serialized.pending = timeout = 0 Serialized.pending = timeout = 0
EventManager._poll(self, timeout) EventManager._poll(self, timeout)
def addReader(self, conn):
EventManager.addReader(self, conn)
if type(Serialized.pending) is not frozenset:
Serialized.pending = 1
class Node(object): class Node(object):
...@@ -674,10 +679,13 @@ class NEOCluster(object): ...@@ -674,10 +679,13 @@ class NEOCluster(object):
@staticmethod @staticmethod
def tic(force=False): def tic(force=False):
# XXX: Should we automatically switch client in slave mode if it isn't ? # XXX: Should we automatically switch client in slave mode if it isn't ?
neo.lib.logging.info('tic ...')
if force: if force:
Serialized.tic() Serialized.tic()
neo.lib.logging.info('forced tic')
while Serialized.pending: while Serialized.pending:
Serialized.tic() Serialized.tic()
neo.lib.logging.info('tic')
def getNodeState(self, node): def getNodeState(self, node):
uuid = node.uuid uuid = node.uuid
......
...@@ -27,7 +27,7 @@ from neo.storage.transactions import TransactionManager, \ ...@@ -27,7 +27,7 @@ from neo.storage.transactions import TransactionManager, \
from neo.lib.connection import MTClientConnection from neo.lib.connection import MTClientConnection
from neo.lib.protocol import CellStates, ClusterStates, NodeStates, Packets, \ from neo.lib.protocol import CellStates, ClusterStates, NodeStates, Packets, \
ZERO_OID, ZERO_TID, MAX_TID ZERO_OID, ZERO_TID, MAX_TID
from neo.lib.util import p64 from neo.lib.util import dump, p64
from . import NEOCluster, NEOThreadedTest, Patch, predictable_random from . import NEOCluster, NEOThreadedTest, Patch, predictable_random
from neo.client.pool import CELL_CONNECTED, CELL_GOOD from neo.client.pool import CELL_CONNECTED, CELL_GOOD
...@@ -239,6 +239,8 @@ class ReplicationTests(NEOThreadedTest): ...@@ -239,6 +239,8 @@ class ReplicationTests(NEOThreadedTest):
def corrupt(offset): def corrupt(offset):
s0, s1, s2 = (storage_dict[cell.getUUID()] s0, s1, s2 = (storage_dict[cell.getUUID()]
for cell in cluster.master.pt.getCellList(offset, True)) for cell in cluster.master.pt.getCellList(offset, True))
neo.lib.logging.info('corrupt partition %u of %s',
offset, dump(s1.uuid))
s1.dm.deleteObject(p64(np+offset), p64(corrupt_tid)) s1.dm.deleteObject(p64(np+offset), p64(corrupt_tid))
return s0.uuid return s0.uuid
def check(expected_state, expected_count): def check(expected_state, expected_count):
......
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