• Julien Muchembled's avatar
    client: discard late answers to lockless writes · 50e7fe52
    Julien Muchembled authored
    This fixes:
    
      Traceback (most recent call last):
        File "neo/client/Storage.py", line 108, in tpc_vote
          return self.app.tpc_vote(transaction)
        File "neo/client/app.py", line 546, in tpc_vote
          self.waitStoreResponses(txn_context)
        File "neo/client/app.py", line 539, in waitStoreResponses
          _waitAnyTransactionMessage(txn_context)
        File "neo/client/app.py", line 160, in _waitAnyTransactionMessage
          self._handleConflicts(txn_context)
        File "neo/client/app.py", line 514, in _handleConflicts
          self._store(txn_context, oid, serial, data)
        File "neo/client/app.py", line 452, in _store
          self._waitAnyTransactionMessage(txn_context, False)
        File "neo/client/app.py", line 155, in _waitAnyTransactionMessage
          self._waitAnyMessage(queue, block=block)
        File "neo/client/app.py", line 142, in _waitAnyMessage
          _handlePacket(conn, packet, kw)
        File "neo/lib/threaded_app.py", line 133, in _handlePacket
          handler.dispatch(conn, packet, kw)
        File "neo/lib/handler.py", line 72, in dispatch
          method(conn, *args, **kw)
        File "neo/client/handlers/storage.py", line 143, in answerRebaseObject
          assert cached == data
      AssertionError
    50e7fe52
test.py 107 KB