[Kde-pim] Review Request 117608: ItemSync: Fixed and tested transaction handling.
Commit Hook
null at kde.org
Thu Apr 17 16:38:56 BST 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117608/#review55965
-----------------------------------------------------------
This review has been submitted with commit d54a1b8b78bca5998ce91905b3d0faf285145b87 by Christian Mollekopf to branch master.
- Commit Hook
On April 17, 2014, 10:54 a.m., Christian Mollekopf wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/117608/
> -----------------------------------------------------------
>
> (Updated April 17, 2014, 10:54 a.m.)
>
>
> Review request for KDEPIM-Libraries and Dan Vrátil.
>
>
> Repository: kdepimlibs
>
>
> Description
> -------
>
> ItemSync: Fixed and tested transaction handling.
>
> The fetchjobs need to be part of the transaction as well, as they are otherwise
> not executed before the transactoin is complete.
>
> ItemSync: Fixed single transaction mode, adapted test to trigger problem from last patch.
>
> mTransactionJobs should not be checked here, as it is already checked in
> checkDone, and the check in proess is only valid when using
>
> ItemSync: Fix full sync
>
> Ensure that checkDone doesn't start the next batch while we're still fetching
> the items.
> This bug was triggered only if setFullSyncItems was called at least twice in streaming
> mode (therefore it only appeard on large imap folders where the items
> we delivered in two batches, and only during the flag sync which is a full sync).
> The first call triggered the ItemFetch, but while that was in progress,
> the second call went via process() to checkDone(), which cleared mProcessingBatch
> and immediately started a second parallel batch, and a third batch was started
> by deliveryDone(). This resulted in the first two batches (20 items), appearing as new
> (because the were processed before the local items were fetched), and the already locally
> available items getting deleted, because they couldn't be removed from
> mUnprocessedLocalIds (since they were processed before entering that list.
>
> We use the job counter to lock, just like everywhere else.
>
>
> Diffs
> -----
>
> akonadi/itemsync.h 7dbba1d0408e4098a14ea6ff0eebc6696d310958
> akonadi/itemsync.cpp e1edae20ea41c8e8b2685e8fa9e015f0356eafef
> akonadi/tests/itemsynctest.cpp 84b9b10aefafbf9ed62303e81e062988a6380a7c
>
> Diff: https://git.reviewboard.kde.org/r/117608/diff/
>
>
> Testing
> -------
>
> Only the unittests so far. I'll follow up with some manual testing.
>
>
> Thanks,
>
> Christian Mollekopf
>
>
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list