[Bug 26644] New: Butterfly drops incoming messages after conversation timeout
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Feb 19 04:46:44 CET 2010
http://bugs.freedesktop.org/show_bug.cgi?id=26644
Summary: Butterfly drops incoming messages after conversation
timeout
Product: Telepathy
Version: git master
Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: butterfly
AssignedTo: telepathy-bugs at lists.freedesktop.org
ReportedBy: wgrant at ubuntu.com
If a conversation is left idle for a minute or two, the server will time it
out. If the remote end sends a message, a new conversation will be established.
papyon sees the reestablishment and subsequent messages, but any messages after
the reestablishment never get forwarded through to Empathy. If the conversation
is instead reestablished from the local end, messages can travel in both
directions without a problem.
To reproduce on one machine:
1) Connect to one MSN account with Pidgin.
2) Connect to another MSN account with Empathy.
3) Start a conversation from Pidgin.
4) Have a conversation.
5) Say nothing for a minute or two until the switchboard disconnect.
6) Send a message from Pidgin.
7) Notice that Empathy has not seen the message.
I've seen this for a while now, but most recently on Ubuntu Lucid with
telepathy-butterfly 0.5.4, telepathy-python 0.15.15 and papyon 0.4.4. I can
also reproduce with git head of all three.
I had a dig through the code, and it appears that on_invite_conversation calls
channel_for_props, which never actually attaches the conversation to an
existing channel. It will pass it through to the channel's __init__ if creating
a new one, but does nothing if it finds one existing. So the papyon
conversation ends up with no butterfly event handler, so the messages get
handled by nothing.
Applying the following patch makes things work again, but it's almost certainly
the wrong solution.
=== modified file 'butterfly/connection.py'
--- butterfly/connection.py 2010-01-19 16:21:47 +0000
+++ butterfly/connection.py 2010-02-19 03:39:00 +0000
@@ -304,6 +304,9 @@
handle, False, initiator_handle=handle)
channel = self._channel_manager.channel_for_props(props,
signal=True, conversation=conversation)
+ if channel._conversation is not conversation:
+ channel._conversation = conversation
+ papyon.event.ConversationEventInterface.__init__(channel,
conversation)
# papyon.event.InviteEventInterface
def on_invite_conference(self, call):
--
Configure bugmail: http://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