xiehuc / pidgin-lwqq

a pidgin plugin based on lwqq, a excellent safe useful library for webqq protocol
GNU General Public License v3.0
660 stars 185 forks source link

[preview分支]:pidgin添加QQ账户后登录时崩溃 #142

Closed lainme closed 11 years ago

lainme commented 11 years ago

使用分支:preview (head hash: 506076761f9f9a8bdfc9ff5522687257d7c62c82)

原因见2L,是缺少群

我之前是有一个QQ号的,更新 pidgin-lwqq 后登录时崩溃,但删除了~/.purple/blist.xml后就能正常工作了。

随后关闭了当前QQ号并且添加了另一个号码,在登录号码的时候崩溃退出,即使将~/.purple整个删除重新添加也依然崩溃。这个号码只有一个好友,没有群,不知道是不是有关系。确实是由于这个号码没有QQ群的缘故。

pidgin 崩溃时的终端信息

pidgin: /tmp/yaourt-tmp-lainme/aur-pidgin-lwqq-git/src/pidgin-lwqq/src/webqq.c:760: login_stage_f: Assertion `!((&lc->groups)->lh_first == ((void *)0))' failed.

backtrace结果

Program received signal SIGABRT, Aborted.
0x00007ffff4b26fd5 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff4b26fd5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4b28458 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff4b20022 in __assert_fail_base () from /usr/lib/libc.so.6
#3  0x00007ffff4b200d2 in __assert_fail () from /usr/lib/libc.so.6
#4  0x00007fffe7dab7e6 in login_stage_f (lc=0xd93a50) at /home/lainme/Downloads/pidgin-lwqq/src/webqq.c:760
#5  0x00007fffe7dd2216 in vp_func_p (func=0x7fffe7dab64b <login_stage_f>, vp=0x7fffffffb700, q=0x0)
    at /home/lainme/Downloads/pidgin-lwqq/src/liblwqq/vplist.c:48
#6  0x00007fffe7dd208a in vp_do (cmd=..., retval=0x0) at /home/lainme/Downloads/pidgin-lwqq/src/liblwqq/vplist.c:23
#7  0x00007fffe7db175c in lwqq_async_event_finish (event=0xdfb0f0) at /home/lainme/Downloads/pidgin-lwqq/src/liblwqq/async.c:111
#8  0x00007fffe7db2f4f in async_complete (conn=0xddf7d0) at /home/lainme/Downloads/pidgin-lwqq/src/liblwqq/http.c:451
#9  0x00007fffe7dd2216 in vp_func_p (func=0x7fffe7db2d66 <async_complete>, vp=0x7fffbc000d00, q=0x0)
    at /home/lainme/Downloads/pidgin-lwqq/src/liblwqq/vplist.c:48
#10 0x00007fffe7dafd49 in did_dispatch (param=0x7fffbc000cf0) at /home/lainme/Downloads/pidgin-lwqq/src/qq_types.c:18
#11 0x00007ffff57193cb in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007ffff5718845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#13 0x00007ffff5718b78 in ?? () from /usr/lib/libglib-2.0.so.0
#14 0x00007ffff5718f72 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#15 0x00007ffff6980727 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x00000000004307d1 in main ()

列出相关代码

(gdb) f 4
#4  0x00007fffe7dab7e6 in login_stage_f (lc=0xd93a50) at /home/lainme/Downloads/pidgin-lwqq/src/webqq.c:760
760         assert(!LIST_EMPTY(&lc->groups));
(gdb) l
755             LwqqAsyncEvent* ev=lwqq_info_get_friend_avatar(lc,lc->myself);
756             lwqq_async_add_event_listener(ev,_C_(2p,friend_avatar,ac,lc->myself));
757         }
758
759         assert(!LIST_EMPTY(&lc->friends));
760         assert(!LIST_EMPTY(&lc->groups));
761
762         LwqqAsyncEvent* ev = NULL;
763         LwqqAsyncEvset* set = NULL;
764         if(ac->qq_use_qqnum){
lainme commented 11 years ago

760 assert(!LIST_EMPTY(&lc->groups));

这句的原因?因为没有群不能通过assert,所以挂了。确实是最近提交的

https://github.com/xiehuc/pidgin-lwqq/commit/561139030e10367a0727fcb85f8b6aadc0803387#diff-8

xiehuc commented 11 years ago

因为现在会强制同步pidgin的群到lwqqclient的群,就是把已经没有的群删掉。 如果是下载来群列表的失败了,就会把本来的群删干净。

为了保护本地群。就先加了这句了。

等查明原因之后再打开

2012/12/17 lainme notifications@github.com

760 assert(!LIST_EMPTY(&lc->groups));

这句的原因?因为没有群所以挂了。确实是最近提交的

5611390#diff-8https://github.com/xiehuc/pidgin-lwqq/commit/561139030e10367a0727fcb85f8b6aadc0803387#diff-8

— Reply to this email directly or view it on GitHubhttps://github.com/xiehuc/pidgin-lwqq/issues/142#issuecomment-11445882.

xiehuc commented 11 years ago

因为如果没有群的话 就会导致把所有podgin的群都删掉 因为强制同步到lwqqclient。为了保护pidgin的信息。先加了这句。

再开就可以了

等调查出来原因再对症解决

在 2012-12-17,23:27,lainme notifications@github.com 写道:

760 assert(!LIST_EMPTY(&lc->groups));

这句的原因?因为没有群所以挂了。确实是最近提交的

5611390#diff-8https://github.com/xiehuc/pidgin-lwqq/commit/561139030e10367a0727fcb85f8b6aadc0803387#diff-8

— Reply to this email directly or view it on GitHubhttps://github.com/xiehuc/pidgin-lwqq/issues/142#issuecomment-11445882.

Sn0rt commented 11 years ago

webqq_bengkui 就这么崩溃了

mytbk commented 11 years ago

我用的是Arch的Community源的,也崩溃了。

0 0x00007fffe269f54b in ?? () from /usr/lib/purple-2/libwebqq.so

1 0x00007fffe26a04f8 in ?? () from /usr/lib/purple-2/libwebqq.so

2 0x00007fffe26bc419 in vp_do () from /usr/lib/purple-2/libwebqq.so

3 0x00007fffe26a363d in lwqq_async_event_finish ()

from /usr/lib/purple-2/libwebqq.so

4 0x00007fffe26a4e95 in ?? () from /usr/lib/purple-2/libwebqq.so

5 0x00007fffe26a23eb in ?? () from /usr/lib/purple-2/libwebqq.so

6 0x00007ffff570e3cb in ?? () from /usr/lib/libglib-2.0.so.0

7 0x00007ffff570d845 in g_main_context_dispatch ()

from /usr/lib/libglib-2.0.so.0

8 0x00007ffff570db78 in ?? () from /usr/lib/libglib-2.0.so.0

9 0x00007ffff570df72 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0

10 0x00007ffff6980727 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0

11 0x00000000004307d1 in main ()

Sn0rt commented 11 years ago

我也不知道 什么原因。。 我正在学习编程, 观望~ 模仿~ 学习~ 改进~ 超越~

2012/12/30 mytbk notifications@github.com

我用的是Arch的Community源的,也崩溃了。

0 0x00007fffe269f54b in ?? () from /usr/lib/purple-2/libwebqq.so

1 https://github.com/xiehuc/pidgin-lwqq/issues/1 0x00007fffe26a04f8 in

?? () from /usr/lib/purple-2/libwebqq.so

2 https://github.com/xiehuc/pidgin-lwqq/issues/2 0x00007fffe26bc419 in

vp_do () from /usr/lib/purple-2/libwebqq.so

3 https://github.com/xiehuc/pidgin-lwqq/issues/3 0x00007fffe26a363d in

lwqq_async_event_finish () from /usr/lib/purple-2/libwebqq.so

4 https://github.com/xiehuc/pidgin-lwqq/issues/4 0x00007fffe26a4e95 in

?? () from /usr/lib/purple-2/libwebqq.so

5 https://github.com/xiehuc/pidgin-lwqq/issues/5 0x00007fffe26a23eb in

?? () from /usr/lib/purple-2/libwebqq.so

6 https://github.com/xiehuc/pidgin-lwqq/issues/6 0x00007ffff570e3cb in

?? () from /usr/lib/libglib-2.0.so.0

7 https://github.com/xiehuc/pidgin-lwqq/issues/7 0x00007ffff570d845 in

g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0

8 https://github.com/xiehuc/pidgin-lwqq/issues/8 0x00007ffff570db78 in

?? () from /usr/lib/libglib-2.0.so.0

9 https://github.com/xiehuc/pidgin-lwqq/issues/9 0x00007ffff570df72 in

g_main_loop_run () from /usr/lib/libglib-2.0.so.0

10 https://github.com/xiehuc/pidgin-lwqq/issues/10 0x00007ffff6980727

in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0

11 https://github.com/xiehuc/pidgin-lwqq/issues/11 0x00000000004307d1

in main ()

— Reply to this email directly or view it on GitHubhttps://github.com/xiehuc/pidgin-lwqq/issues/142#issuecomment-11759950.

lainme commented 11 years ago

@wangguohao @mytbk 我这个崩溃是因为没有群的原因。你们也是没有群?如果不是,应该属于不同的问题,按照wiki上的调试方法调试后开新的issue吧

Sn0rt commented 11 years ago

我直接没法登陆 观望~ 模仿~ 学习~ 改进~ 超越~

在 2012年12月30日下午4:25,lainme notifications@github.com写道:

@wangguohao https://github.com/wangguohao @mytbkhttps://github.com/mytbk我这个崩溃是因为没有群的原因。你们也是没有群?如果不是,应该属于不同的问题,按照wiki上的调试方法调试开新的issue吧

— Reply to this email directly or view it on GitHubhttps://github.com/xiehuc/pidgin-lwqq/issues/142#issuecomment-11762544.

xiehuc commented 11 years ago

这个问题更新dev即可解决。