[Telepathy] telepathy-python bug fix for Requests Interface
eopage at byu.net
Thu Mar 4 19:24:36 PST 2010
After much help from Lassi Syrjälä of Nokia, I've been able to narrow
down an issue I was having with my connection Manager on the Maemo 5.
I got random reports of Maemo's phone UI reporting "General Error".
Monitoring DBus showed that this came from Maemo 5's Mission Control
randomly passing incomplete information to the UI, particularly the
InitiatorHandle was lacking.
What happens is Mission Control calls HandleChannels sometime after
CreateChannel with whatever information it has at the moment.
telepathy-python's implementation of the Requests interface only
returns the properties it was given, minus the mutable ones. This
does not include the InitiatorHandle. Mission Control starts some
other queries for information on the channel. If those don't return
with the InitiatorHandle before HandleChannels is called then we see
My patch is to have CreateChannel/EnsureChannel return the properties
from the channel (much like NewChannels does) rather than uselessly
returning the properties passed in. I've done some basic testing and
have reports of one or two other people testing this. Sadly with race
conditions its hard to prove they are fixed by the lack of them.
Github page for the branch containing the fix
The "The One Ring" bug report that has the investigation on this:
And below is my requesting help with Maemo 5's telepathy omponents on
the Maemo Developers mailinglist which I assume is what drew Lassi
Syrjälä's attention. I'm CCing maemo-dev let people know my post
wasn't ignored but got very helpful attention
On Tue, Mar 2, 2010 at 8:43 PM, Edward Page <eopage at byu.net> wrote:
> I've been hunting down an issue with The One Ring which exhibits
> itself as calls randomly failing with an error being reported to the
> user as "General Error".
> I've been setting up traces within my code and logging what is
> happening on the DBus Session bus. I've seen no difference in the
> logs for what calls are made on The One Ring, the values it returns,
> or what signals it fires (well, except the premature closure of my
> channel after the error occurred). The only thing I've seen is that
> an app (RTComm?) will report to the another app (Call UI?) that there
> is no "InitiatorHandle".
> Notes on my investigation and the accompanying log files can be found
> at the bug filed to me
> I mostly use The One Ring for outbound calls and Sofia and Spirit
> (SIP/Skype) for inbound so I can't say whether it reproduces or not on
> other Connection Managers. I've tried to search b.m.o and have come
> across no other reports which with the frequency it can be seen with
> The One Ring, if it occurred on the others I would think a bug would
> be filed immediately.
> The result of the logs make me want to point the finger at RTComm but
> the lack of issue on other Connection Managers bends that finger back
> at myself. Does anyone know if this sounds like a RTComm or a The One
> Ring issue? Anything I might be doing wrong on my side? As best as I
> can figure reading the Telepathy spec, I'm doing things right even if
> its a bit different (no actual media streams). If someone wants to
> take a look, from the garage project you can get the GIT repo. The
> code is modeled heavily after butterfly).
> As I've mentioned before, I'm always unsure whether maemo-dev or
> telepathy is the best forum for these platform specific telepathy
> issues. If this is better than also feel free to look at an issue
> I've posted to the telepathy list about that I suspect is related to a
> Skype issue.
> Ed Page
More information about the telepathy