• Julien Muchembled's avatar
    client: fix undetected disconnections to storage nodes during commit · d68e9053
    Julien Muchembled authored
    When a client-storage connection breaks, the storage node discards data of all
    ongoing transactions by the client. Therefore, a reconnection within the
    context of the transaction is wrong, as it could lead to partially-written
    transactions.
    
    This fixes cases where such reconnection happened. The biggest issue was that
    the mechanism to dispatch disconnection events only works when waiting for an
    answer.
    
    The client can still reconnect for other purposes but the new connection won't
    be reused by transactions that already involved the storage node.
    d68e9053
transactions.py 6.46 KB