[Bug 27544] New: Disconnecting during a channel creation doesn't unregister the path of channel
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Apr 9 03:10:36 CEST 2010
https://bugs.freedesktop.org/show_bug.cgi?id=27544
Summary: Disconnecting during a channel creation doesn't
unregister the path of channel
Product: Telepathy
Version: unspecified
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: medium
Component: butterfly
AssignedTo: telepathy-bugs at lists.freedesktop.org
ReportedBy: olivier at lethanh.be
When we disconnect butterfly while it's creating a channel, the dbus path is
already registered but we don't unregister it afterward. So after we reconnect
and try to open a channel with the same name it fail, however Empathy seems to
still use the channel and the messages we send are losts
Error when disconnecting :
Traceback (most recent call last):
File "/home/olivier/Projects/papyon/papyon/client.py", line 471, in event
self._dispatch(method_name, *args[:-1])
File "/home/olivier/Projects/papyon/papyon/event/__init__.py", line 44, in
_dispatch
if event_handler._dispatch_event(name, *args):
File "/home/olivier/Projects/papyon/papyon/event/__init__.py", line 65, in
_dispatch_event
handler(*params)
File "/home/olivier/Projects/telepathy-butterfly/butterfly/connection.py",
line 461, in on_oim_messages_fetched
signal=True)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channelmanager.py",
line 120, in channel_for_props
return self.create_channel_for_props(props, signal, **args)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channelmanager.py",
line 105, in create_channel_for_props
props, **args)
File
"/home/olivier/Projects/telepathy-butterfly/butterfly/channel_manager.py", line
151, in _get_text_channel
object_path=path)
File "/home/olivier/Projects/telepathy-butterfly/butterfly/channel/im.py",
line 54, in __init__
conversation = papyon.Conversation(client, [contact])
File "/home/olivier/Projects/papyon/papyon/conversation.py", line 62, in
Conversation
return SwitchboardConversation(client, contacts)
File "/home/olivier/Projects/papyon/papyon/conversation.py", line 421, in
__init__
SwitchboardClient.__init__(self, client, contacts, priority=0)
File "/home/olivier/Projects/papyon/papyon/switchboard_manager.py", line 54,
in __init__
self._process_pending_queues()
File "/home/olivier/Projects/papyon/papyon/switchboard_manager.py", line 162,
in _process_pending_queues
if self._request_switchboard():
File "/home/olivier/Projects/papyon/papyon/switchboard_manager.py", line 185,
in _request_switchboard
self._switchboard_manager.request_switchboard(self,
self._switchboard_priority) # may set the switchboard immediatly
File "/home/olivier/Projects/papyon/papyon/switchboard_manager.py", line 260,
in request_switchboard
request_switchboard(priority, self._ns_switchboard_request_response,
handler)
File "/home/olivier/Projects/papyon/papyon/util/decorator.py", line 111, in
new_function
func(*args, **kwargs)
File "/home/olivier/Projects/papyon/papyon/msnp/notification.py", line 219,
in request_switchboard
self._send_command('XFR', ('SB',))
File "/home/olivier/Projects/papyon/papyon/msnp/base.py", line 80, in
_send_command
increment, callback, *cb_args)
File "/home/olivier/Projects/papyon/papyon/transport.py", line 207, in
send_command_ex
self.send_command(cmd, increment, callback, *cb_args)
File "/home/olivier/Projects/papyon/papyon/transport.py", line 277, in
send_command
self._transport.send(str(command), self.__on_command_sent, *our_cb_args)
File "/home/olivier/Projects/papyon/papyon/gnet/io/iochannel.py", line 157,
in send
assert(self._status == IoStatus.OPEN), self._status
AssertionError: 1
DEBUG:Butterfly.MailN
When a new connection is made and we try to reopen the channel:
DEBUG:Butterfly.ChannelManager:New text channel
Traceback (most recent call last):
File "/home/olivier/Projects/papyon/papyon/client.py", line 471, in event
self._dispatch(method_name, *args[:-1])
File "/home/olivier/Projects/papyon/papyon/event/__init__.py", line 44, in
_dispatch
if event_handler._dispatch_event(name, *args):
File "/home/olivier/Projects/papyon/papyon/event/__init__.py", line 65, in
_dispatch_event
handler(*params)
File "/home/olivier/Projects/telepathy-butterfly/butterfly/connection.py",
line 461, in on_oim_messages_fetched
signal=True)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channelmanager.py",
line 120, in channel_for_props
return self.create_channel_for_props(props, signal, **args)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channelmanager.py",
line 105, in create_channel_for_props
props, **args)
File
"/home/olivier/Projects/telepathy-butterfly/butterfly/channel_manager.py", line
151, in _get_text_channel
object_path=path)
File "/home/olivier/Projects/telepathy-butterfly/butterfly/channel/im.py",
line 42, in __init__
ButterflyTextChannel.__init__(self, conn, manager, conversation, props,
object_path)
File "/home/olivier/Projects/telepathy-butterfly/butterfly/channel/text.py",
line 56, in __init__
object_path=object_path)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channel.py",
line 232, in __init__
object_path=object_path)
File
"/home/olivier/test/lib/python2.6/site-packages/telepathy/server/channel.py",
line 62, in __init__
_Channel.__init__(self, self._conn._name, object_path)
File "/usr/lib/pymodules/python2.6/dbus/service.py", line 480, in __init__
self.add_to_connection(conn, object_path)
File "/usr/lib/pymodules/python2.6/dbus/service.py", line 571, in
add_to_connection
self._fallback)
KeyError: "Can't register the object-path handler for
'/org/freedesktop/Telepathy/Connection/butterfly/msn/istaz_40live_2efr/TextChannel1':
there is already a handler"
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the telepathy-bugs
mailing list