Merge lp:~facundo/ubuntuone-client/fix-getdelta-repetition into lp:ubuntuone-client
| Status: | Merged |
|---|---|
| Approved by: | Alejandro J. Cura on 2012-05-15 |
| 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 on 2012-05-15 | ||
| Curtis Caravone (community) | 2012-05-09 | Approve on 2012-05-10 | |
|
Review via email:
|
|||
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