[Bug 76000] preparatory cleanup for GDBus migration

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Mar 10 13:46:01 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=76000

--- Comment #16 from Simon McVittie <simon.mcvittie at collabora.co.uk> ---
Created attachment 95549
  --> https://bugs.freedesktop.org/attachment.cgi?id=95549&action=edit
invalidated-while-invoking-signals test: extend test  coverage

Since commit 6f153bca, we didn't wait for on_status_changed() to occur.
At some point it ceased to be reached at all, which meant that
commit db582a0d added an unbalanced unref for @client in what has
now become teardown(). If on_status_changed() was executed, it would
unref the client, and then the unref in teardown() would either be
a use-after-free or indirectly lead to one.

Porting telepathy-glib to GDBus exposed this bug, by making
on_status_changed() reachable again.

While fixing this I noticed that on_status_changed() is not guaranteed
to be the last-unref, so the test does not necessarily even reproduce
the original crash situation, which was the proxy being invalidated
inside the signal callback. I've addressed that by testing once with
the way the test has worked in practice since at least 2012, and
once with explicit forced invalidation.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.


More information about the telepathy-bugs mailing list