Summary: | telepathy-butterfly crashed with InvalidHandle in check_handle() | ||
---|---|---|---|
Product: | Telepathy | Reporter: | Sebastien Bacher <seb128> |
Component: | butterfly | Assignee: | Telepathy bugs list <telepathy-bugs> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | caravena |
Version: | unspecified | Keywords: | patch |
Hardware: | Other | ||
OS: | All | ||
URL: | http://git.collabora.co.uk/?p=user/jonny/telepathy-butterfly.git;a=shortlog;h=refs/heads/27553 | ||
Whiteboard: | review+ | ||
i915 platform: | i915 features: | ||
Attachments: |
butterfly.log
debbug2-butterfly.log |
Description
Sebastien Bacher
2010-04-09 06:20:41 UTC
*** Bug 27829 has been marked as a duplicate of this bug. *** Odd. Can I get some butterfly logs please? Created attachment 35280 [details] butterfly.log bug with space. " example@correo.cl" Created attachment 35283 [details] debbug2-butterfly.log Bug add user with spache in the end. "example@correo.cl " Okay what's happening here is Empathy is calling RequestHandles for the contact you are trying to add, and then the contact list channel waits for the mutex to become unlocked before progressing. In the mean time, Empathy calls ReleaseHandles on the handle which was just requested. This means that the contact handle object gets disposed and gets lost from the Connection._handles dict. When the mutex unlocked callback gets called, it can't find the object, hence the traceback. However, if you try to add a contact which actually exists (i.e. not foo@example.com), then it kind of works, which is odd. It requests the handle of the contact, does something, then the callback gets called and the ReleaseHandles has already been called so it can't find the handle. However, papyon calls a callback with this new contact and a brand new handle appears out of the blue. I've not got time to look into this more right now, but I thought I'd write down what I know for now. We could use this as an excuse to push butterfly into the future of having connection-persistent handles? Okay, so my diagnosis in comment #5 wasn't entirely correct. I was getting confused between the publish and subscribe lists. I've written a patch which should solve this. There's a big comment in the patch which should explain my reasoning. Testing adding new valid and invalid contacts appears to show this patch works as expected. Better ideas of how to keep handle in scope until after finished_cb() are welcome. You can demonstrate that this scope hack works because if you try to add a bogus contact "boguscontact@example.com", watch it fail, then try RequestHandles on "boguscontact@example.com" gives you a new contact, which is cool. *** Bug 27879 has been marked as a duplicate of this bug. *** *** Bug 27907 has been marked as a duplicate of this bug. *** Merged, this fix is available in butterfly 0.5.10 *** Bug 28122 has been marked as a duplicate of this bug. *** |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.