Bug 28599 - regression in 0.9.13: fails to connect to jabberd2 2.2.7.1, prosody 0.6.1
Summary: regression in 0.9.13: fails to connect to jabberd2 2.2.7.1, prosody 0.6.1
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: 0.9
Hardware: Other All
: medium major
Assignee: Will Thompson
QA Contact: Telepathy bugs list
URL: http://git.collabora.co.uk/?p=user/wj...
Whiteboard: review+ with trivial change
Keywords: patch
Depends on:
Blocks:
 
Reported: 2010-06-18 04:06 UTC by Simon McVittie
Modified: 2010-06-21 05:29 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Simon McVittie 2010-06-18 04:06:53 UTC
In 0.9.13 we started discovering PEP capabilities correctly, by disco'ing
our own bare JID as well as disco'ing the server.

Unfortunately, jabberd2 2.2.7.1 replies with an error when we disco our own
bare JID. The solution is probably to make this error non-fatal (leaving
failure to disco the server as fatal).

The relevant parts of a log:

(telepathy-gabble:5059): gabble-DEBUG: gabble_disco_request_with_timeout: Creating disco request 0x819d9a0 for pld-linux.org
(telepathy-gabble:5059): gabble-DEBUG: gabble_disco_request_with_timeout: Creating disco request 0x819da20 for _________@pld-linux.org
(telepathy-gabble:5059): gabble-DEBUG: connection_disco_cb: got:
* query xmlns='http://jabber.org/protocol/disco#info'
    * identity name='Jabber IM server' type='im' category='server'
    * feature var='jabber:iq:private'
    * feature var='presence'
    * feature var='jabber:iq:time'
    * feature var='jabber:iq:agents'
    * feature var='urn:xmpp:ping'
    * feature var='http://jabber.org/protocol/vacation'
    * feature var='urn:xmpp:time'
    * feature var='urn:xmpp:blocking'
    * feature var='vcard-temp'
    * feature var='jabber:iq:version'
    * feature var='message'
    * feature var='msgoffline'
    * feature var='jabber:iq:privacy'
    * feature var='http://jabber.org/protocol/amp'
    * feature var='jabber:iq:roster'
    * feature var='iq'
    * feature var='jabber:iq:last'
    * feature var='jabber:iq:browse'
    * feature var='http://jabber.org/protocol/disco'
    * x xmlns='jabber:x:data' type='result'
        * field type='hidden' var='FORM_TYPE'
            * value
                "urn:xmpp:dataforms:softwareinfo"
        * field var='software'
            * value
                "jabberd"
        * field var='software_version'
            * value
                "2.2.7.1"
        * field var='os'
            * value
                "Linux"
        * field var='os_version'
            * value
                "x86_64"
(telepathy-gabble:5059): gabble-DEBUG: connection_disco_cb: set features flags to 8
(telepathy-gabble:5059): gabble-DEBUG: bare_jid_disco_cb: Got disco error on bare jid: the feature requested is not implemented by the recipient or server and therefore cannot be processed
(telepathy-gabble:5059): gabble-DEBUG: gabble_presence_cache_end_unsure_period: 0x8182450
(telepathy-gabble:5059): tp-glib/connection-DEBUG: tp_base_connection_change_status: was 1, now 2, for reason 1
(telepathy-gabble:5059): tp-glib/connection-DEBUG: tp_base_connection_change_status: emitting status-changed to 2, for reason 1
Comment 1 Will Thompson 2010-06-18 04:39:59 UTC
I shall fix it! Wish me luck.
Comment 2 Will Thompson 2010-06-18 05:57:53 UTC
I have fixed it! Who would review my masterwork?
Comment 3 Simon McVittie 2010-06-18 06:34:46 UTC
Functionally, this looks fine. One style point:

>    if (disco_error != NULL)
> +    DEBUG ("Got disco error on bare jid: %s", disco_error->message);
> +  else
> +    for (i = node_iter (result); i; i = node_iter_next (i))
> +      {

I think the if and else blocks should have {} for clarity, because the for-loop is more than one statement.
Comment 4 Will Thompson 2010-06-18 07:05:18 UTC
Merged; will be in 0.9.14!
Comment 5 Simon McVittie 2010-06-21 04:43:42 UTC
It turns out this affects my Prosody 0.6.1 installation, too; we should probably release 0.9.14 sooner rather than later, if this is a common server bug.

Outgoing IQ:

(telepathy-gabble:2069): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='get' to='smcv@XXX' id='788917834034'
    * query xmlns='http://jabber.org/protocol/disco#info'

Reply:

(telepathy-gabble:2069): wocky-DEBUG: Parsing chunk: <iq id='788917834034' type='error' to='smcv@XXX/reptile'><error type='cancel'><service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>

I also get these messages, because Prosody omits @from on the reply:

(telepathy-gabble:2069): wocky-DEBUG: handle_iq_reply: wocky-porter.c:842: '(null)' (normal: '(null)') attempts to spoof an IQ reply from 'smcv@XXX'
(telepathy-gabble:2069): gabble-DEBUG: connection_iq_unknown_cb: got unknown iq:
* iq xmlns='jabber:client' id='788917834034' type='error' to='smcv@XXX/reptile'
    * error type='cancel'
        * service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'

and the connection attempt eventually fails:

(telepathy-gabble:2069): gabble-DEBUG: bare_jid_disco_cb: Got disco error on bare jid: Request for info on smcv@XXX timed out
Comment 6 Simon McVittie 2010-06-21 04:48:39 UTC
(In reply to comment #5)
> I also get these messages, because Prosody omits @from on the reply:

This is Bug #28647 in Wocky.
Comment 7 Simon McVittie 2010-06-21 05:29:10 UTC
(In reply to comment #5)
> It turns out this affects my Prosody 0.6.1 installation, too

I opened <http://code.google.com/p/lxmppd/issues/detail?id=191>.


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.