Opened 7 years ago

Last modified 7 years ago

#14610 new defect

creating new 'google talk' group then moving buddy to it deletes buddy

Reported by: dooglus Owned by: deryni
Milestone: 2.10.1 Component: XMPP
Version: 2.7.11 Keywords:
Cc:

Description

I wanted to have quick access to chat logs of 2 particular buddies in my General group. They're both google talk contacts.

I made a new group for them, right clicked them one at a time and moved them to the new group. Then I couldn't see the new group anywhere. I enabled 'show empty groups' and then I saw the group with (0/0) users in it. Both buddies have disappeared from my list entirely.

I had another contact add me, and added them back, typing an alias for them and typing 'General' for the group to put them in. Then I opened the debug window, made a new group 'Market 3333' and moved them to it. They also vanished. I'll attach the debug log.

Attachments (2)

purple-debug.log (1.5 KB) - added by dooglus 7 years ago.
debug log while buddy vanishes during move
jabber_roster_group_change.patch (1011 bytes) - added by BigBrownChunx 7 years ago.
Patch for group_change to handle moving a buddy from a group that it's not currently in (for whatever reason)

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by dooglus

debug log while buddy vanishes during move

Changed 7 years ago by BigBrownChunx

Patch for group_change to handle moving a buddy from a group that it's not currently in (for whatever reason)

comment:1 Changed 7 years ago by BigBrownChunx

Looking at libpurple/protocols/jabber/roster.c, the group_change code expects the buddy to be in the old group, but for some reason the buddy isn't in the old group. The patch fixes that by guaranteeing the buddy will be in the new group.

comment:2 Changed 7 years ago by dustin

This is very similar to (but not the same as) ticket #14309:

For a buddy that is only in one group, moving to an empty group updates pidgin's buddy list, but there isn't any roster update to the server.

This is for the same reason as the bug above (buddy can't be found in the old group).

(With the patch from BigBrownChunx? applied, jabber_roster_group_change() now stores new_group in the groups list, but jabber_roster_update() still only gets to this point:

    if (!(b = purple_find_buddy(js->gc->account, name)))
        return;

)

comment:3 Changed 7 years ago by dustin

Posted an alternative patch to ticket #14309.

With this change, buddy should be found in the old group when group_change is called.

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!