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

Thomas McGuire mcguire at kde.org
Tue Jun 9 02:35:31 BST 2009


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

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