[ejabberd] add/auth window continues to appear

Jesse Thompson jesse.thompson at doit.wisc.edu
Tue Jun 16 00:16:16 MSD 2009

We have been seeing sporadic cases where Psi users get into an Add/Auth 
loop where the window keeps popping up after adding a contact.  Usually 
it goes away after clicking Add/Auth a few times.

This morning our desktop support team reported that recently all users 
at one of our remote offices experience this when adding every contact, 
and the Add/Auth windows do not stop popping up until they click Close 
on one of the windows.

Here is the description of the problem from our desktop support staff:
Over the past week I have been adding several new users to Psi over at
xxxx.  I'm noticing that the authorization process seems to get
stuck in a loop.  In the past when you would add a contact the contact
would get a window where they had to click "Add/Auth".  Then the
requester would get the same window where they would click "Add/Auth".
At this point they could now chat with each other.  Lately, the
"Add/Auth" process is a never-ending loop.  The only way I have been
able to make it stop is to have one of the users click "Close".  Any ideas?

We upgrade from ejabberd 1.1.4 to 2.0.4 a few weeks ago, and it is 
possible that these problems started happening after the upgrade, but it 
is hard to tell for sure.  ejabberd is set up as a 2 node cluster with 
mnesia as the backend for roster data.

I approached the Psi-dev list first.  I opened a bug report here:
(you can find an xml console log attached to the bug report.)

This was the response from Justin Karneges:

When you click Add/Auth in Psi, it sends both "subscribe" and 
"subscribed" to the other contact.  According to the log, it looks like 
the "subscribe" request is getting sent to contacts that already have an 
active subscription. The loop happens because whenever each client 
receives a "subscribe", the user is prompted to send a "subscribe" back, 
and so round and round you go. The contacts have a "both" subscription 
state, so nothing is really happening at this point.  It's just relaying 
presence stanzas end to end until one of you decides to stop.

Psi could be made smarter here, to only send subscribe to contacts that 
don't have a subscription or only prompt to authorize contacts that 
don't have a subscription, but for historical reasons it doesn't do 
that, and according to the spec, it doesn't have to.

RFC 3920, section 3.1.3:
"If the contact exists and the user already has a subscription to the
contact's presence, then the contact's server MUST auto-reply on behalf 
of the contact by sending a presence stanza of type "subscribed" from 
the contact's bare JID to the user's bare JID."

So, I think this is a server bug.

Jesse Thompson
Division of Information Technology, University of Wisconsin-Madison
Email/IM: jesse.thompson at doit.wisc.edu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3353 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20090615/3de16422/attachment.bin>

More information about the ejabberd mailing list