[Kde-pim] Review Request: Fix broken collection comparision leading to resource hangs

Constantin Berzan exit3219 at gmail.com
Tue Jun 9 06:43:54 BST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/806/#review1285
-----------------------------------------------------------


I can confirm that this also fixes a test in the MDA.  However it does seem to make almost all of the tests in Akonadi hang.  With your patch, every invalid collection has id -1 (whereas before they all had different negative ids).  This means any two invalid collections evaluate as equal, which may be a problem.

I wasn't aware of it, but looking at your patch it appears that we were working on the same problem.  I have come up with a less elegant solution here http://websvn.kde.org/?view=rev&revision=979147

- Constantin


On 2009-06-08 18:35:30, Thomas McGuire wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/806/
> -----------------------------------------------------------
> 
> (Updated 2009-06-08 18:35:30)
> 
> 
> Review request for KDE PIM and Volker Krause.
> 
> 
> Summary
> -------
> 
> Comparing two new Collection objects currently says the collections are different, which triggers an interesting cascade: Equal Task objects were not detected as equal, therefore a check in the resource scheduler that should prevent that more than one change replay tasks fails. Therefore, multiple change replay tasks were in the task queue, and under some special circumstances, that can trigger a change replay when there are 0 pending notification left. In that case, since of the missing notifications, taskDone() on the change replay task was never called, leading to a resource hang.
> 
> Frankly I have no idea what the lastId stuff in the Collection constructor was, I hope it was not needed by something.
> 
> This fixes the POP3 unit test.
> 
> 
> Diffs
> -----
> 
>   trunk/KDE/kdepimlibs/akonadi/changerecorder.cpp 978931 
>   trunk/KDE/kdepimlibs/akonadi/collection.cpp 978931 
>   trunk/KDE/kdepimlibs/akonadi/tests/CMakeLists.txt 978931 
>   trunk/KDE/kdepimlibs/akonadi/tests/resourceschedulertest.h PRE-CREATION 
>   trunk/KDE/kdepimlibs/akonadi/tests/resourceschedulertest.cpp PRE-CREATION 
> 
> Diff: http://reviewboard.kde.org/r/806/diff
> 
> 
> Testing
> -------
> 
> Added minimal testcase for this.
> The POP3 unit tests also cover this bug.
> 
> I tried to run the unit tests, but akonadi-db-testenvironmenttest hangs already, guess that has nothing to do with this patch.
> 
> Did not do application testing.
> 
> 
> Thanks,
> 
> Thomas
> 
>

_______________________________________________
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