Bug 22670

Summary: When a client loses any well-known name, MC thinks it has crashed
Product: Telepathy Reporter: Simon McVittie <smcv>
Component: mission-controlAssignee: Simon McVittie <smcv>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium Keywords: patch
Version: unspecified   
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/misc
Whiteboard:
i915 platform: i915 features:

Description Simon McVittie 2009-07-08 04:46:00 UTC
>        if (old_owner[0] == ':')
>        {
>            /* it's a unique name - maybe it was handling some channels? */
>            _mcd_handler_map_set_handler_crashed (priv->handler_map,
>                                                  old_owner);
>        }

Both occurrences of "old_owner" here should be "name".

Consider a handler with multiple names, like the fake Kopete in test/twisted/dispatcher/bypass-approval.py:

* unique name, say :1.94
* main well-known name ...Client.Kopete
* sub-handler to claim special channels without approval, ...Client.Kopete.BypassApproval

Now consider what happens if Kopete no longer wishes to bypass approval. MC sees this NameOwnerChanged signal:

* owner of ...Client.Kopete.BypassApproval changed from :1.94 to nothing

That shouldn't cause it to take any special action (except removing the .BypassApproval filter). However, because of the above logic error it's interpreting it as if it was:

* owner of :1.94 changed from :1.94 to nothing

which is what happens if Kopete crashes, causing all its channels to be closed.
Comment 1 Simon McVittie 2009-07-08 09:21:20 UTC
Patch and release preparations in http://git.collabora.co.uk/?p=user/smcv/telepathy-mission-control-smcv.git;a=shortlog;h=refs/heads/misc - I'd like to get this released tomorrow.
Comment 2 Simon McVittie 2009-07-20 05:50:23 UTC
Fixed in 5.1.4

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.