Hi, There is a bug [1] in Telepathy Gabble which become visible since 0.8.3 (or maybe before) when the user connects 2 times (with 2 different resources) on a Google Jabber server. There is an infinite loop of <presence> stanza sent from both Jabber clients: when each client receives a <presence> stanza, it replies with a presence stanza, and there is an infinite ping-pong.
It seems to happen only when connected to a Google Jabber server. The reason is that Google Jabber servers modify the <presence> stanza sent by a client before broadcasting it to the other resources (see thread [2]). I think it is a bug in the Google Jabber server with regard to XEP-0153 section 4.4 [3]. It should be ok if the server add the photo in <presence> stanza when the client does not put any "<x xmlns='vcard-temp:x:update'>" node. In this case, the client does not support XEP-0153 and the server may want to simulate it. But if the client adds such a node without any <photo> node inside, the server should not attempt to modify it: the absence of <photo> node is done on purpose either to indicate the client does not advertise any image (see XEP-0153 section 4.1.2.) or to resolve an avatar conflict between 2 resources (see XEP-0153 section 4.4). The loop is the following: 1. we get a <presence> stanza with a new photo hash 2. we send a <presence> stanza immediately without <photo> node as per XEP-0153 section 4.4. 3. Google server adds a photo stanza and broadcast our <presence> stanza to other resources 4. we send a vCard request to the server 5. the server replies with an error resource-constraint with error type "wait" 6. the other resource receives our modified stanza, and performs step 1 to 5. The fixes in Gabble 0.8.4 are not enough. The fixes we want to do: - When the server replies to a vCard request with an error of type "wait", do not send again a vCard request to the same JID for some time. - When we are in a conflict resolution (XEP-0153 section 4.4), and Gabble receives a new presence stanza, do not enter again in the conflict resolution: it is not supposed to be recursive. [1] https://bugs.freedesktop.org/show_bug.cgi?id=23684 [2] http://mail.jabber.org/pipermail/jdev/2009-September/029222.html [3] http://xmpp.org/extensions/xep-0153.html -- Alban _______________________________________________ JDev mailing list Forum: http://www.jabberforum.org/forumdisplay.php?f=20 Info: http://mail.jabber.org/mailman/listinfo/jdev Unsubscribe: jdev-unsubscr...@jabber.org _______________________________________________