• Jim Fulton's avatar
    require the storage lock in lastTransaction. · 20f81caa
    Jim Fulton authored
    This is required (or maybe strongly implied) by the IStorage interface.
    
    Also, rearrange the order of operations in _process_invalidations.
    
    Each of these changes avoid a potential race when a connection starts
    a transaction while invalidateTransaction is being called. Basically,
    we don't want a connection to get a lastTransaction corresponding to
    invalidations it hasn't processed.
    
    This neither fixes nor provokes any test failures. :) The need for
    this change was discovered via code inspection. It's hard to see how
    to test the race without getting being insanely whitebox.
    20f81caa
ClientStorage.py 63.9 KB