Bug 14877

Summary: s-e must request its name to dbus-daemon *after* it has created the object path
Product: Telepathy Reporter: Alban Crequy <alban.crequy>
Component: stream-engineAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alban Crequy 2008-03-07 04:35:59 UTC
When I start stream-engine in a console, I can successfuly call with Empathy.

But when I let the D-Bus activation starting stream-engine, the call never succeeds and I don't see the preview video. Empathy complains that a stream-engine method does not exist on the bus:

TpCall: Error calling handle channel: Method "HandleChannel" with signature "sosouu" on interface "org.freedesktop.Telepathy.ChannelHandler" doesn't exist

However stream-engine doesn't crash and I see the method exists on the bus.


This is a race when stream-engine starts. In current stream-engine code, the well-known name is requested before the object is created. See function tp_stream_engine_register() in stream-engine/src/tp-stream-engine.c:

1. tp_cli_dbus_daemon_run_request_name()
2. dbus_g_connection_register_g_object()
3. register_dbus_signal_marshallers()

This order is wrong.
Comment 1 Alban Crequy 2008-03-07 10:22:58 UTC
Patch on http://monkey.collabora.co.uk/stream-engine-alban-fixes/
But I still don't manage to get stream-engine working with D-Bus activation.
Comment 2 Alban Crequy 2008-03-14 16:29:20 UTC
This bug has been fixed by this commit:
http://lists.freedesktop.org/archives/telepathy-commits/2008-March/000638.html

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.