[Adium-devl] XMPP Troubles

Mark Doliner mark at kingant.net
Wed Jul 2 23:37:52 EDT 2008


I added a comment about some weird behavior related to that in
jabber_roster_add_buddy().  If we're waiting on authorization from a
buddy and we add that buddy to a second group then libpurple tries to
remove the buddy from the original group.  I wonder if that could
cause this cyclic effect?

On Sat, Jun 28, 2008 at 7:20 AM, Evan Schoenberg <evan.s at dreskin.net> wrote:
>
> On Jun 28, 2008, at 5:20 AM, Mark Doliner wrote:
>
> On Fri, 27 Jun 2008 15:30:33 -0400, Eric Richie wrote
>
> On Fri, Jun 27, 2008 at 1:15 PM, Peter Saint-Andre <stpeter at stpeter.im>
>
> wrote:
>
> 1. Does this happen only with jabberd2?
>
> Not entirely sure. The only reports we have are from people using
>
> jabberd2, so possibly. But it doesn't seem likely given the nature
>
> of the bug?
>
> The user conall at http://trac.adiumx.com/ticket/8834 is reporting this with
> a
> Google Talk hosted account for his domain.
>
> I'm pretty sure at this point the problem comes from roster.c's
> jabber_roster_update()
> which accepts a GList of groups as a parameter and then sends this
> information to the server.  If NULL is passed, we determine the list from
> the local list.
> I can envision that if the contact were in one group (such as the default
> "Buddies" group) locally and another on the server this could cycle back and
> forth, though I don't know if that's the actual situation which causes this.
> -Evan
> p.s.
> For easy reference, here's the log snippet from #8834.
> -----
> 6:48:40: (Libpurple: jabber) Recv (ssl)(238): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE8FE" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both"
> name="username"><group>Buddies</group></item></query></iq>
> 16:48:40: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple2939887'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com'
> name='username'><group>Buddies</group></item></query></iq>
> 16:48:40: (Libpurple: jabber) Recv (ssl)(331): <iq type="error"
> id="purple2939885" to="conall at example.com/Adium1847DEA9"><query gr:ext="2"
> xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com"
> name="username"><group>Buddies</group></item></query><error code="500"
> type="wait"><internal-server-error
> xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(237): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE901" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both" name="username"><group>GMT
> -8</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple2939888'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com' name='username'><group>GMT
> -8</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(238): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE90C" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both"
> name="username"><group>Buddies</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple2939889'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com'
> name='username'><group>Buddies</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(331): <iq type="error"
> id="purple2939887" to="conall at example.com/Adium1847DEA9"><query gr:ext="2"
> xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com"
> name="username"><group>Buddies</group></item></query><error code="500"
> type="wait"><internal-server-error
> xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(237): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE914" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both" name="username"><group>GMT
> -8</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple293988a'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com' name='username'><group>GMT
> -8</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(238): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE919" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both"
> name="username"><group>Buddies</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple293988b'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com'
> name='username'><group>Buddies</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(331): <iq type="error"
> id="purple2939889" to="conall at example.com/Adium1847DEA9"><query gr:ext="2"
> xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com"
> name="username"><group>Buddies</group></item></query><error code="500"
> type="wait"><internal-server-error
> xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
> 16:48:41: (Libpurple: jabber) Recv (ssl)(237): <iq
> to="conall at example.com/Adium1847DEA9" id="0FEAE923" type="set"><query
> gr:ext="2" xmlns="jabber:iq:roster" xmlns:gr="google:roster"><item
> jid="username at example.com" subscription="both" name="username"><group>GMT
> -8</group></item></query></iq>
> 16:48:41: (Libpurple: jabber) Sending (ssl): <iq type='set'
> id='purple293988c'><query xmlns='jabber:iq:roster' xmlns:gr='google:roster'
> gr:ext='2'><item jid='username at example.com' name='username'><group>GMT
> -8</group></item></query></iq>
> -----




More information about the Devel mailing list