Clean up handlers for destroyed jobs
ClosedPublic

Authored by ervin on Jan 26 2016, 10:56 PM.

Details

Summary

Indeed it might happen that a job is destroyed but never had the chance
to emit result(). In such case the handlers of that job were staying
into the map. Clearly inefficient memory wise, but also dangerous if it
happened that a new job later on ended up at the same address, on
result() it would then trigger its own handlers and those of the old
dead job, could lead to quite unexpected behavior.

Very unlikely scenario in production, but happened regularly because of
AkonadiFakeStorageTest::shouldUseTransaction()

Diff Detail

Repository
R4 Zanshin
Lint
Lint Skipped
Unit
Unit Tests Skipped
ervin updated this revision to Diff 2112.Jan 26 2016, 10:56 PM
ervin retitled this revision from to Clean up handlers for destroyed jobs.
ervin updated this object.
ervin edited the test plan for this revision. (Show Details)
ervin added reviewers: bensi, franckarrecot, dfaure, mlaurent.
bensi accepted this revision.Jan 28 2016, 8:44 AM
bensi edited edge metadata.
This revision is now accepted and ready to land.Jan 28 2016, 8:44 AM
This revision was automatically updated to reflect the committed changes.