Opened 11 years ago

Closed 9 years ago

Last modified 9 years ago

#4956 closed patch (fixed)

massive QQ_CMD_GET_FRIENDS_ONLINE making pidgin slow

Reported by: moo Owned by: csyfek
Milestone: Component: QQ
Version: 2.3.1 Keywords: QQ get friends
Cc:

Description

i found pidgin slow recently. when i have debug window open, i see the following log

(14:09:54) QQ: ==> [05307] QQ_CMD_GET_FRIENDS_ONLINE, from (QQ unknown version)
(14:09:54) QQ: ack [05307] QQ_CMD_GET_FRIENDS_ONLINE, remove from sendqueue
(14:09:54) QQ: processing get_buddies_online_reply
(14:09:54) Get buddies online reply packet:  00(0) 00(0) 00(0) de(222) 4d(77) 01(1) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 0a(10) 06(6) ff(255) 93(147) 02(2) a9(169) 6a(106) 5b(91) e4(228) 8b(139) 29(41) 26(38) 0a(10) 8d(141) 4c(76) 0d(13) d9(217) 65(101) 66(102) 00(0) 09(9) c2(194) 96(150) 00(0) 00(0) 00(0) 00(0) 02(2) 2e(46) 15(21) 01(1) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 0a(10) 05(5) e8(232) ca(202) 58(88) bc(188) ab(171) 69(105) ae(174) 60(96) 04(4) cd(205) a7(167) b5(181) 58(88) a2(162) af(175) 97(151) df(223) 00(0) c4(196) 42(66) 50(80) 00(0) 00(0) 00(0) 00(0) 02(2) e5(229) 16(22) 01(1) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 00(0) 0a(10) 06(6) ff(255) 91(145) 8b(139) 6b(107) 1e(30) 07(7) 5a(90) 97(151) ae(174) 0a(10) 9e(158) 11(17) 64(100) 09(9) 30(48)

(more to folllow at the previous this line)

and is followed by huge amount of

(14:17:51) QQ: qq_update_buddy_contact, client=04c7
(14:17:51) QQ: Buddy status entry, unclear fields for [7654321]:
004:     01   (unknown)
009-010:     0000   (port)
011:     00   (unknown)
012:     1e   (status)
013-014:     06c1   (client_version)
(14:17:51) Unknown key:  9c(156) af(175) 5f(95) ec(236) a0(160) c6(198) 96(150) 9c(156) 56(86) 2e(46) 7e(126) a4(164) c4(196) c8(200) b7(183) 5f(95)
(14:17:51) QQ: Online buddy entry, unclear fields for [1234567]:
031-032: 0089 (unknown)
033:     02   (flag1)
034:     c6   (comm_flag)
035-036: 0000 (unknown)

(7654321/1234567 is a mask for privacy reason)

i'm not sure if one copy of this response is a problem, but there're many QQ_CMD_GET_FRIENDS_ONLINE just like a dead loop.

when i turn off specified one of my qq account (with so many friends), the problem seems gone. while the other qq account (with just a few friends) works always just fine

Attachments (1)

pidgin-bug-4956-fix.diff (4.8 KB) - added by moo 11 years ago.
refix list commands and make checking more robust

Download all attachments as: .zip

Change History (13)

comment:1 Changed 11 years ago by moo

i have attached a patch that fix this issue. and also fix the problem that you can only see part of your budies in the list and no groups, when you have too many budies

comment:2 Changed 11 years ago by moo

oops, there's something wrong here

Changed 11 years ago by moo

refix list commands and make checking more robust

comment:3 Changed 11 years ago by moo

qq_process_get_buddies_list_reply() and qq_process_get_all_list_with_group_reply() looks good now, list items is received completely imho.

but i'm not sure what happened to qq_process_get_buddies_online_reply() becuase i don't have enough online buddies to test. but i make it more robust.

at least, none of them, the list reply processor, should re-request from position=0 (START)

comment:4 Changed 11 years ago by rlaager

  • Type changed from defect to patch

comment:5 Changed 11 years ago by rlaager

  • Owner changed from seanegan to csyfek

comment:6 Changed 11 years ago by csyfek

  • Keywords QQ get friends added
  • Status changed from new to assigned

Thanks moo! We'll try it as soon as possible. Welcome to drop around us at: http://groups.google.com/group/openq

comment:7 Changed 11 years ago by csyfek@…

  • Resolution set to fixed
  • Status changed from assigned to closed

(In 54416c3a9ed80862d700c73b4a62bffe02e23534):
Sun Jun 29 22:00:12 CST 2008 csyfek@…

  • 20080629-fixed-qun-processing Merged patches from moo, ccpaging and coly

Tickets: References #6199

Sat Jun 28 13:25:40 CST 2008 csyfek@…

  • 20080628-get-friends Patches from moo and ccpaging.

Tickets: Fixes #4956. Fixes #2998.

comment:8 Changed 11 years ago by moo

pls read pidgin-bug-4956-fix.diff carefully and double check how you applied it. this bug is NOT fixed

actual code in 2.5.0 repo:

    if (position != QQ_FRIENDS_ONLINE_POSITION_END) {
        purple_debug(PURPLE_DEBUG_INFO, "QQ", "Received %d online buddies, nextposition=%u\n",
                                count, (guint) position);
        if (position != QQ_FRIENDS_ONLINE_POSITION_START) {
            purple_debug(PURPLE_DEBUG_INFO, "QQ", "Requesting for more online buddies\n");
        }
        qq_send_packet_get_buddies_online(gc, position);
    } else {
        purple_debug(PURPLE_DEBUG_INFO, "QQ", "All online buddies received\n");
        qq_send_packet_get_buddies_levels(gc);
        qq_refresh_all_buddy_status(gc);
    }

expected code:

    purple_debug(PURPLE_DEBUG_INFO, "QQ", "Received %d online buddies, nextposition=%u\n",
                                count, (guint) position);
    if (position != QQ_FRIENDS_ONLINE_POSITION_END && position != QQ_FRIENDS_ONLINE_POSITION_START) {
        purple_debug(PURPLE_DEBUG_INFO, "QQ", "Requesting for more online buddies\n");
        qq_send_packet_get_buddies_online(gc, position);
    } else {
        purple_debug(PURPLE_DEBUG_INFO, "QQ", "All online buddies received\n");
        qq_send_packet_get_buddies_levels(gc);
        qq_refresh_all_buddy_status(gc);
    }

comment:9 Changed 11 years ago by csyfek

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:10 Changed 10 years ago by darkrain42

  • Milestone set to Patches Needing Review

csyfek: What is the status of this?

comment:11 Changed 9 years ago by QuLogic

  • Resolution set to fixed
  • Status changed from new to closed

It's unfortunate that our QQ developers appear to have disappeared.

But from what I can tell, this patch was either applied or made unnecessary due to other changes. It may be that you didn't see the correct changes because this patch was erroneously applied on the 2.4.3 branch. If you are able to find any missing changes then I would be happy to apply them (if they are reasonable; keep in mind I'm not a QQ developer). For now, I'm going to mark this as fixed again.

comment:12 Changed 9 years ago by Robby

  • Milestone Patches Needing Review deleted
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!