Merge lp:~facundo/ubuntuone-client/fix-getdelta-repetition into lp:ubuntuone-client
Status: | Merged |
---|---|
Approved by: | Alejandro J. Cura |
Approved revision: | 1242 |
Merged at revision: | 1245 |
Proposed branch: | lp:~facundo/ubuntuone-client/fix-getdelta-repetition |
Merge into: | lp:ubuntuone-client |
Diff against target: |
36 lines (+15/-0) 2 files modified
tests/syncdaemon/test_action_queue.py (+9/-0) ubuntuone/syncdaemon/action_queue.py (+6/-0) |
To merge this branch: | bzr merge lp:~facundo/ubuntuone-client/fix-getdelta-repetition |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alejandro J. Cura (community) | Approve | ||
Curtis Caravone (community) | Approve | ||
Review via email: mp+105220@code.launchpad.net |
Commit message
Use PathLockTree to get one GetDelta at a time (LP: #883252).
Description of the change
Use PathLockTree to get one GetDelta at a time.
Actually, two are sent at the same time, but not a zillion as today.
This works with GetDelta rules (don't issue another GetDelta if there's another one with same or less gen number *not running*). The not running part is the trick, so this will happen for a zillion GetDeltas with the same gen number (common case after a move and a lot of operations):
- First GD is queued, and run.
- Second GD is queued (as first is running), but gets locked in the PathLockTree.
- Third and subsequent GDs are not queued, as there's one not running for that gen number.
Test included.
Looks good