Bug 26667

Summary: Frequent timeouts at jabber.org
Product: Telepathy Reporter: pav
Component: gabbleAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED NOTOURBUG QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium CC: anotherjonathon
Version: 0.8   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description pav 2010-02-20 09:06:38 UTC
Connections to jabber.org are frequently interrupted by connection-timeout stream errors, about every 10-30 minutes. This triggers a disconnect (followed by automatic reconnect in Empathy).


Gabble log displays the following error before disconnects:

(telepathy-gabble:9195): gabble-DEBUG: _process_caps: Emitting caps update: handle 5, old 131264, new 131264
(telepathy-gabble:9195): gabble-DEBUG: connection_stream_error_cb: got stream error:
(telepathy-gabble:9195): gabble-DEBUG: connection_stream_error_cb: got stream error:
<stream:error> <connection-timeout xmlns="urn:ietf:params:xml:ns:xmpp-streams"></connection-timeout>
</stream:error>


The following also appears in the log:

(telepathy-gabble:9195): gabble-DEBUG: connection_iq_unknown_cb: got unknown iq:
<iq id="18160010" type="result" from="jabber.org"></iq>

(telepathy-gabble:9195): gabble-DEBUG: connection_iq_unknown_cb: got unknown iq:
<iq id="ping" type="get" to="xxx@jabber.org/Telepathy.a7f3a1a3" from="jabber.org"> <ping xmlns="urn:xmpp:ping"></ping>
</iq>


(On telepathy-gabble 0.8.7 + empathy 2.28.1.1; Ubuntu 9.10)
Comment 1 Simon McVittie 2010-02-22 01:15:33 UTC
*** Bug 26690 has been marked as a duplicate of this bug. ***
Comment 2 Simon McVittie 2010-02-22 01:17:07 UTC
This seems likely to be related to jabber.org's switch to M-Link; I can't remember any reports of timeout/idle problems when they were still running ejabberd.
Comment 3 Simon McVittie 2010-02-22 01:31:44 UTC
(In reply to comment #0)
> (telepathy-gabble:9195): gabble-DEBUG: connection_iq_unknown_cb: got unknown
> iq:
> <iq id="ping" type="get" to="xxx@jabber.org/Telepathy.a7f3a1a3"
> from="jabber.org"> <ping xmlns="urn:xmpp:ping"></ping>
> </iq>

I wonder whether M-Link assumes that all clients support XEP-0199 XMPP Ping, and drops clients who don't respond successfully?

Current versions of Gabble don't support this feature, but I believe we correctly reply with an error to any IQ we don't support, which in the case of a ping should be an equally useful indicator that we're still alive.

If you turn on Loudmouth debug (LM_DEBUG=net), do you see Gabble sending an error reply just after the message I quoted?
Comment 4 pav 2010-02-22 12:16:44 UTC
Here's an excrept with LM_DEBUG=net

It seems to me that it at least claims that it sends a reply.

**********************************************************************
RECV [302]:
-----------------------------------
'<iq from='proxy.eu.jabber.org' to='pv@jabber.org/Telepathy.2927922d' type='result' id='24868818448'><query xmlns='http://jabber.org/protocol/disco#info'><identity category='proxy' type='bytestreams' name='SOCKS5 Bytestreams Service'/><feature var='http://jabber.org/protocol/bytestreams'/></query></iq>'
-----------------------------------
(telepathy-gabble:12775): gabble-DEBUG: connection_iq_unknown_cb: got unknown iq:
<iq id="24868818448" type="result" to="pv@jabber.org/Telepathy.2927922d" from="proxy.eu.jabber.org"> <query xmlns="http://jabber.org/protocol/disco#info"> <identity name="SOCKS5 Bytestreams Service" type="bytestreams" category="proxy"></identity>
 <feature var="http://jabber.org/protocol/bytestreams"></feature>
</query>
</iq>


RECV [115]:
-----------------------------------
'<iq from='jabber.org' to='pv@jabber.org/Telepathy.2927922d' type='get' id='ping'><ping xmlns='urn:xmpp:ping'/></iq>'
-----------------------------------
(telepathy-gabble:12775): gabble-DEBUG: connection_iq_unknown_cb: got unknown iq:
<iq id="ping" type="get" to="pv@jabber.org/Telepathy.2927922d" from="jabber.org"> <ping xmlns="urn:xmpp:ping"></ping>
</iq>


SEND:
-----------------------------------
<iq type="error" to="jabber.org" id="ping"> <ping xmlns="urn:xmpp:ping"></ping>
 <error type="cancel" code="502"> <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></service-unavailable>
</error>
</iq>

-----------------------------------

RECV [1]:
-----------------------------------
' '
-----------------------------------

RECV [110]:
-----------------------------------
'<stream:error><connection-timeout xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>'
-----------------------------------
(telepathy-gabble:12775): gabble-DEBUG: connection_stream_error_cb: got stream error:
<stream:error> <connection-timeout xmlns="urn:ietf:params:xml:ns:xmpp-streams"></connection-timeout>
</stream:error>

Freeing up IOChannel and file descriptor
(telepathy-gabble:12775): gabble-DEBUG: connection_disconnected_cb: called with reason 3
**********************************************************************
Comment 5 pav 2010-02-22 13:23:39 UTC
Also, asking around at juser@jabber.org if they know what's going on:

http://article.gmane.org/gmane.network.jabber.user/2529
Comment 6 pav 2010-02-25 12:22:02 UTC
Got a reply from jabber.org admins;

on Thu, 25 Feb 2010 10:35:46 +0000, Kevin Smith wrote:
> Confirmed, this is an issue with jabber.org not with Telepathy.
Comment 7 Simon McVittie 2010-02-25 14:05:26 UTC
Thanks for investigating. We're doing the (or, at least, a) right thing and they confirm that the problem is at their end, so, NOTOURBUG.

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.