Bug 71280

Summary: telepathy-gabble 0.18 does not work with jabberd2
Product: Telepathy Reporter: Sebastien Bacher <seb128>
Component: gabbleAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED MOVED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Sebastien Bacher 2013-11-05 19:42:39 UTC
The bug has been opened on https://bugs.launchpad.net/ubuntu/+source/telepathy-gabble/+bug/1223436

"If I upgrade to telepathy-gabble 0.18.0-1 or 0.18.1-1, I can no longer connect to a jabberd2 server. The jabberd2 c2s.log simply has:
Tue Sep 10 11:13:14 2013 [notice] [12] [xxx, port=43155] connect
Tue Sep 10 11:13:14 2013 [notice] [12] [xxx, port=43155] disconnect jid=unbound, packets: 0

If I downgrade to 0.16.6-1ubuntu1, it starts working again:
Tue Sep 10 11:14:01 2013 [notice] [13] [xxx, port=37786] connect
Tue Sep 10 11:14:01 2013 [notice] [13] [xxx, port=37786] disconnect jid=unbound, packets: 0
Tue Sep 10 11:14:01 2013 [notice] [12] SASL authentication succeeded: mechanism=DIGEST-MD5; authzid=xxx, TLS negotiated
Tue Sep 10 11:14:01 2013 [notice] [12] bound: jid=xxx/xxx

I can see this by trying to connect with empathy.
...
https://bugs.launchpad.net/ubuntu/+source/telepathy-gabble/+bug/1223436/+attachment/3886371/+files/gabble%20%28jabber%29-21-10-13_11-13-12.log

Here is the requested info. Looks like this is the problem:
wocky/-DEBUG: 10/21/2013 16:13:22.146378: auth_failed: wocky-sasl-auth.c:274: Authentication failed!: Server sent success before finishing authentication
wocky/-DEBUG: 10/21/2013 16:13:22.146378: auth_failed: wocky-sasl-auth.c:274: Authentication failed!: Server sent success before finishing authentication
gabbleauthentication-DEBUG: 10/21/2013 16:13:22.146493: gabble_server_sasl_channel_fail (server-sasl-channel.c:959): auth failed: WOCKY_AUTH_ERROR_INVALID_REPLY (#4): Server sent success before finishing authentication
gabbleauthentication-DEBUG: 10/21/2013 16:13:22.146493: gabble_server_sasl_channel_fail (server-sasl-channel.c:959): auth failed: WOCKY_AUTH_ERROR_INVALID_REPLY (#4): Server sent success before finishing authentication
gabbleconnection-DEBUG: 10/21/2013 16:13:22.146655: connector_error_disconnect (connection.c:1764): Interactive authentication error, reason 0, dbus error org.freedesktop.Telepathy.Error.ServiceConfused
gabbleconnection-DEBUG: 10/21/2013 16:13:22.146655: connector_error_disconnect (connection.c:1764): Interactive authentication error, reason 0, dbus error org.freedesktop.Telepathy.Error.ServiceConfused
...
https://bugs.launchpad.net/ubuntu/+source/telepathy-gabble/+bug/1223436/+attachment/3890335/+files/gabble%20%28jabber%29-24-10-13_16-25-10.log



Attached is the log for 0.16. What I find interesting is that 0.18 is logging twice. Eg:
gabbleauthentication-DEBUG: 10/21/2013 16:13:21.904870: gabble_server_sasl_channel_start_auth_async (server-sasl-channel.c:836): Starting authentication
gabbleauthentication-DEBUG: 10/21/2013 16:13:21.904870: gabble_server_sasl_channel_start_auth_async (server-sasl-channel.c:836): Starting authentication
gabbleauthentication-DEBUG: 10/21/2013 16:13:22.139523: gabble_server_sasl_channel_start_mechanism_with_data (server-sasl-channel.c:548): Starting X-TELEPATHY-PASSWORD authentication with 16 bytes of initial data
gabbleauthentication-DEBUG: 10/21/2013 16:13:22.139523: gabble_server_sasl_channel_start_mechanism_with_data (server-sasl-channel.c:548): Starting X-TELEPATHY-PASSWORD authentication with 16 bytes of initial data

but 0.16 is only logging once:
gabbleauthentication-DEBUG: 10/24/2013 21:24:57.750232: gabble_server_sasl_channel_start_auth_async (server-sasl-channel.c:814): Starting authentication
gabbleauthentication-DEBUG: 10/24/2013 21:24:58.174243: gabble_server_sasl_channel_start_mechanism_with_data (server-sasl-channel.c:520): Starting X-TELEPATHY-PASSWORD authentication with 16 bytes of initial data

Don't know if this is related or not."
Comment 1 Jamie Strandboge 2014-01-31 18:28:35 UTC
I commented in the Ubuntu bug:

"I had troubles connecting again. I ended up upgrading to 0.18.1-1ubuntu2, deleting the offending account and recreating it. I was then able to connect. I then tried to reproduce the error. The only thing that I could get to trigger was if I set the 'Resource' in advanced configuration to 'laptop'. If I removed 'Resource' or changed it to '/laptop', then it worked. I can't recall if I had the '/' before or not.... At this point, I'm probably not going to be able to reproduce the bug since I'm not sure what my previous configuration was. I can say that perhaps it would be reasonable for empathy/telepathy-gabble to prepend a '/' to the Resource if it isn't present."
Comment 2 Simon McVittie 2014-02-03 12:09:40 UTC
(In reply to comment #1)
> The only thing that I could
> get to trigger was if I set the 'Resource' in advanced configuration to
> 'laptop'. If I removed 'Resource' or changed it to '/laptop', then it
> worked. [...] I can say that perhaps it would be reasonable
> for empathy/telepathy-gabble to prepend a '/' to the Resource if it isn't
> present."

XMPP resourceparts (names of resources - the "resource" parameter in Telepathy) are not normally meant to start with "/". If you can only connect with resource omitted or set to start with "/", then something is wrong. Have you tried setting it to a string not starting with "/" but not equal to "laptop"?

If you set the resourcepart to "laptop", your full JID would be something like "jamie@example.com/laptop" - the / delimiter is part of the syntax, not part of the resourcepart. Similarly, if you set the resource to "/laptop", you would end up with the unconventional full JID "jamie@example.com//laptop" (I think - the second / might get escaped somehow, I can't remember what the syntactic restrictions are).

Do you have other XMPP clients connected to the same account? Might one of them have its resourcepart set to "laptop" too?

If you're able to create and delete disposable accounts on a jabberd2 server, it might be interesting to see the uncensored SASL handshake for an account with a known username, password and resourcepart, to be able to verify that the handshake is done correctly according to RFC6120 and RFC2831.
Comment 3 GitLab Migration User 2019-12-03 19:59:36 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/telepathy/telepathy-gabble/issues/267.

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.