Closed felixonmars closed 9 years ago
第二种很频繁的 crash:
(gdb) bt
#0 0x00007fffd4210c0d in dispatch_poll_lost (lc=<optimized out>) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/info.c:162
#1 0x00007fffd42178f6 in vp_do (cmd=..., retval=<optimized out>) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/vplist.c:44
#2 0x00007fffd446d69c in ?? () from /usr/lib/purple-2/libwebqq.so
#3 0x00007ffff55600d3 in ?? () from /usr/lib/libglib-2.0.so.0
#4 0x00007ffff555f62d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#5 0x00007ffff555fa08 in ?? () from /usr/lib/libglib-2.0.so.0
#6 0x00007ffff555fd32 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#7 0x00007ffff6822417 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#8 0x0000000000431a1b in main ()
(gdb) f 0
#0 0x00007fffd4210c0d in dispatch_poll_lost (lc=<optimized out>) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/info.c:162
162 vp_do_repeat(lc->events->poll_lost, NULL);
(gdb) p lc->events->poll_lost
value has been optimized out
(gdb) p lc->events
value has been optimized out
(gdb) p lc
$3 = <optimized out>
你贴一下lwqq-config.h 看看呢。
El Psy Congroo
在 2015年3月3日,14:46,Felix Yan notifications@github.com 写道:
我这里升级到 0.4.2 后有比较频繁的 crash, 下面是其中一种情况的 backtrace. 0.4.1 20150208 的版本没有这些问题. 有其他几种情况的 backtrace 我会回复在这里.
(gdb) bt
0 0x00007fffd3ccc68d in ?? () from /usr/lib/libcurl.so.4
1 0x00007fffd3ccfa03 in ?? () from /usr/lib/libcurl.so.4
2 0x00007fffd3ce195b in ?? () from /usr/lib/libcurl.so.4
3 0x00007fffd3cf235f in ?? () from /usr/lib/libcurl.so.4
4 0x00007fffd3cf2d6e in ?? () from /usr/lib/libcurl.so.4
5 0x00007fffd3cf2f77 in curl_multi_socket_action () from /usr/lib/libcurl.so.4
6 0x00007fffd421b627 in timer_cb (timer=0xca6e40, data=0x7fffd4457640
) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/http.c:750 7 0x00007fffd34d35d3 in ev_invoke_pending () from /usr/lib/libev.so.4
8 0x00007fffd34d6c0e in ev_run () from /usr/lib/libev.so.4
9 0x00007fffd4219d12 in ev_run_thread (data=
) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/async.c:316 10 0x00007ffff4cc0374 in start_thread () from /usr/lib/libpthread.so.0
11 0x00007ffff49fe27d in clone () from /usr/lib/libc.so.6
(gdb) f 6
6 0x00007fffd421b627 in timer_cb (timer=0xca6e40, data=0x7fffd4457640
) at /home/felix/projects/arch/community/lwqq/trunk/src/lwqq/lib/http.c:750 750 curl_multi_socket_action(g->multi, CURL_SOCKET_TIMEOUT, 0, &g->still_running); (gdb) p g->multi $1 = (CURLM *) 0xc873d0 (gdb) p g->still_running $2 = 3 — Reply to this email directly or view it on GitHub.
#ifndef _LWQQ_CONFIG_H__
#define _LWQQ_CONFIG_H__
#define WITH_LIBEV
/* #undef WITH_LIBUV */
#define WITH_SQLITE
/* #undef WITHOUT_ASYNC */
#define WITH_MOZJS
/* #undef MOZJS_185 */
#define MOZJS_17
#define HAVE_STRTOK_R
// using open_memstream in http.c
// direct write response to mem file
/* #undef HAVE_OPEN_MEMSTREAM */
#define LWQQ_VERSION "0.4.2"
#define RES_DIR "/usr/share/lwqq"
// use a single thread to poll message
// default: disabled
// note default value is good enough, it run poll in libev, asynced,
/* #undef USE_MSG_THREAD */
//detach thread without join it
#define DETACH_THREAD False
//write discu into database
#define DISCU_READ_DB 1
// when continuly poll_msg_lost happend {?} times, send relink
// default : 5
#define RETRY_BEFORE_RELINK 4
// set poll_msg timeout {?} seconds
// default : 90
#define POLL_MSG_TIMEOUT 75
#define OFFPIC_USE_WQQ
#endif /* __CONFIG_H__ */
另外补充一下, 0.4.2 即使不崩溃, 在我这里也会在每约 25 分钟时所有帐号掉线. 我有调整过设置中的 relink 时间到 20 分钟, 10 分钟, 甚至更短, 但是没有帮助. 0.4.1 20150208 的版本也没有这个问题 (保持在线 ~10 个小时可以不掉线).
不会吧,我0.4.2用着完全不掉线,反而是0.4.1经常掉线。你把SSL打开试一试?
El Psy Congroo
在 2015年3月3日,19:07,Felix Yan notifications@github.com 写道:
另外补充一下, 0.4.2 即使不崩溃, 在我这里也会在每约 25 分钟时所有帐号掉线. 我有调整过设置中的 relink 时间到 20 分钟, 10 分钟, 甚至更短, 但是没有帮助. 0.4.1 20150208 的版本也没有这个问题 (保持在线 ~10 个小时可以不掉线).
— Reply to this email directly or view it on GitHub.
现在开学了反而没时间改bug了。比较麻烦
El Psy Congroo
在 2015年3月3日,19:07,Felix Yan notifications@github.com 写道:
另外补充一下, 0.4.2 即使不崩溃, 在我这里也会在每约 25 分钟时所有帐号掉线. 我有调整过设置中的 relink 时间到 20 分钟, 10 分钟, 甚至更短, 但是没有帮助. 0.4.1 20150208 的版本也没有这个问题 (保持在线 ~10 个小时可以不掉线).
— Reply to this email directly or view it on GitHub.
我有打开和关闭 SSL 后分别测试了, 都有相同的问题. 目前最稳定的方法暂时是用 0208 的版本加上我的那个比较丑陋的 patch...
好的,那就先降级吧,待我哪日修复了bug再升好了。
El Psy Congroo
在 2015年3月4日,00:22,Felix Yan notifications@github.com 写道:
我有打开和关闭 SSL 后分别测试了, 都有相同的问题. 目前最稳定的方法暂时是用 0208 的版本加上我的那个比较丑陋的 patch...
— Reply to this email directly or view it on GitHub.
确实偶尔会crash,掉线偶尔也有,但似乎不是所有帐号掉,再观察观察。。
PS: 这个问题依然存在……
我这里没发现啊,有bt吗?
El Psy Congroo
在 2015年4月17日,22:09,Felix Yan notifications@github.com 写道:
PS: 这个问题依然存在……
― Reply to this email directly or view it on GitHub.
依然和一楼的 bt 基本一样,时不时遇到一次~
dispatch_lost 的那个我应该已经在dev修复了。因为登录的时候切换状态导致的错误。
至于第一个,太模糊了,要切换到其他线程去开才能知道是怎么回事。
好的,下次我试试提供更多信息。
能有core dump就更好了
El Psy Congroo
在 2015年4月17日,23:28,Felix Yan notifications@github.com 写道:
好的,下次我试试提供更多信息。
― Reply to this email directly or view it on GitHub.
得到一个不同的 crash,我留下了 coredump 文件,但是有 2.2G 大……
Program received signal SIGSEGV, Segmentation fault.
0x00007fffd3cf1c79 in ?? () from /usr/lib/libcurl.so.4
(gdb) bt
#0 0x00007fffd3cf1c79 in ?? () from /usr/lib/libcurl.so.4
#1 0x00007fffd3cd8d59 in ?? () from /usr/lib/libcurl.so.4
#2 0x00007fffd3ce753b in curl_easy_setopt () from /usr/lib/libcurl.so.4
#3 0x00007fffd421c2e2 in lwqq_http_create_default_request (lc=0xe06d20, url=<optimized out>, err=0x0) at /build/lwqq/src/lwqq/lib/http.c:600
#4 0x00007fffd4201a54 in lwqq_relink (lc=0xe06d20) at /build/lwqq/src/lwqq/lib/login.c:791
#5 0x00007fffd42083cb in process_poll_message_cb (req=<optimized out>) at /build/lwqq/src/lwqq/lib/msg.c:1610
#6 receive_poll_message (req=0x490b7b90, req@entry=<error reading variable: value has been optimized out>,
post=0x9f22240 "r=%7B%22ptwebqq%22%3A%22b41f4e149de2c29c40b699a9753b805fac3ebd6392a030b099582dd5a5477b68%22%2C%22clientid%22%3A%2268845214%22%2C%22psessionid%22%3A%228368046764001d636f6e6e7365727665725f77656271714031"..., post@entry=<error reading variable: value has been optimized out>)
at /build/lwqq/src/lwqq/lib/msg.c:1638
#7 0x00007fffd4216cb9 in vp_func_2p (func=<optimized out>, vp=<optimized out>, q=<optimized out>) at /build/lwqq/src/lwqq/lib/vplist.c:169
#8 0x00007fffd4216966 in vp_do (cmd=..., retval=retval@entry=0x7fffffffb644) at /build/lwqq/src/lwqq/lib/vplist.c:46
#9 0x00007fffd421ad25 in async_complete (conn=0x236c12d0) at /build/lwqq/src/lwqq/lib/http.c:674
#10 0x00007fffd4216966 in vp_do (cmd=..., retval=retval@entry=0x0) at /build/lwqq/src/lwqq/lib/vplist.c:46
#11 0x00007fffd446c6fc in did_dispatch (param=0x7fff9c8672c0) at /build/pidgin-lwqq/src/pidgin-lwqq/src/qq_types.c:87
#12 0x00007ffff55613a3 in ?? () from /usr/lib/libglib-2.0.so.0
#13 0x00007ffff556090d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#14 0x00007ffff5560ce0 in ?? () from /usr/lib/libglib-2.0.so.0
#15 0x00007ffff5561002 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#16 0x00007ffff6823467 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#17 0x0000000000431a1b in main ()
coredump应该可以设 只转储核心内存的吧。或者还有limit-c来限制大小。怎么看pidgin都不可能用2G内存,所以应该转出的是完整内存空间。
El Psy Congroo
在 2015年4月18日,01:28,Felix Yan notifications@github.com 写道:
得到一个不同的 crash,我留下了 coredump 文件,但是有 2.2G 大……
Program received signal SIGSEGV, Segmentation fault. 0x00007fffd3cf1c79 in ?? () from /usr/lib/libcurl.so.4 (gdb) bt
0 0x00007fffd3cf1c79 in ?? () from /usr/lib/libcurl.so.4
1 0x00007fffd3cd8d59 in ?? () from /usr/lib/libcurl.so.4
2 0x00007fffd3ce753b in curl_easy_setopt () from /usr/lib/libcurl.so.4
3 0x00007fffd421c2e2 in lwqq_http_create_default_request (lc=0xe06d20, url=
, err=0x0) at /build/lwqq/src/lwqq/lib/http.c:600 4 0x00007fffd4201a54 in lwqq_relink (lc=0xe06d20) at /build/lwqq/src/lwqq/lib/login.c:791
5 0x00007fffd42083cb in process_poll_message_cb (req=
) at /build/lwqq/src/lwqq/lib/msg.c:1610 6 receive_poll_message (req=0x490b7b90, req@entry=
, post=0x9f22240 "r=%7B%22ptwebqq%22%3A%22b41f4e149de2c29c40b699a9753b805fac3ebd6392a030b099582dd5a5477b68%22%2C%22clientid%22%3A%2268845214%22%2C%22psessionid%22%3A%228368046764001d636f6e6e7365727665725f77656271714031"..., post@entry=<error reading variable: value has been optimized out>) at /build/lwqq/src/lwqq/lib/msg.c:1638
7 0x00007fffd4216cb9 in vp_func_2p (func=
, vp= , q= ) at /build/lwqq/src/lwqq/lib/vplist.c:169 8 0x00007fffd4216966 in vp_do (cmd=..., retval=retval@entry=0x7fffffffb644) at /build/lwqq/src/lwqq/lib/vplist.c:46
9 0x00007fffd421ad25 in async_complete (conn=0x236c12d0) at /build/lwqq/src/lwqq/lib/http.c:674
10 0x00007fffd4216966 in vp_do (cmd=..., retval=retval@entry=0x0) at /build/lwqq/src/lwqq/lib/vplist.c:46
11 0x00007fffd446c6fc in did_dispatch (param=0x7fff9c8672c0) at /build/pidgin-lwqq/src/pidgin-lwqq/src/qq_types.c:87
12 0x00007ffff55613a3 in ?? () from /usr/lib/libglib-2.0.so.0
13 0x00007ffff556090d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
14 0x00007ffff5560ce0 in ?? () from /usr/lib/libglib-2.0.so.0
15 0x00007ffff5561002 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
16 0x00007ffff6823467 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
17 0x0000000000431a1b in main ()
― Reply to this email directly or view it on GitHub.
额,我这里 pidgin 经常用到 2G 内存以上……最高时候超过 10G……
pidgin 用到2G都不如直接用wineQQ了。你登录了很多帐号吗?
嗯,算是比较多吧……
你也用telegram啊,好用吗?
似乎是在退出的时候还有网络通信,而另一边把正在通信的进程杀死了。然后就crash了。就现在的架构来说还是挺难改的。我这边测试压力太小了。
Felix Yan notifications@github.com于2015年4月18日星期六写道:
嗯,算是比较多吧…… [image: 2015-04-18-121710-7c3abf] https://cloud.githubusercontent.com/assets/1006477/7213968/e41af6c4-e5c4-11e4-8a20-d247570885db.png
— Reply to this email directly or view it on GitHub https://github.com/xiehuc/pidgin-lwqq/issues/625#issuecomment-94124093.
你看我没有勾上……就是因为 telegram 崩得比 lwqq 还厉害 :P
你们机器上是不是用的有异步DNS支持的curl?
我在dev分支上改了一下,如果有异步DNS则不再使用两个线程了。不知道行不行。
看起来是的…… 我马上测试。
$ curl --version
curl 7.41.0 (x86_64-unknown-linux-gnu) libcurl/7.41.0 OpenSSL/1.0.2a zlib/1.2.8 libidn/1.30 libssh2/1.5.0
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
最后结果如何?
啊,昨天忘记回复了。用 lwqq/pidgin-lwqq 的 dev 分支最新 commit 编译不过:
Building C object src/CMakeFiles/webqq.dir/cgroup.c.o
/build/pidgin-lwqq/src/pidgin-lwqq/src/translate.c: In function 'build_smiley_exp_from_file':
/build/pidgin-lwqq/src/pidgin-lwqq/src/translate.c:90:10: warning: 'id' may be used uninitialized in this function [-Wmaybe-uninitialized]
g_hash_table_insert(smiley_hash, s_strdup(smiley), (gpointer)id);
^
/build/pidgin-lwqq/src/pidgin-lwqq/src/translate.c:85:10: warning: 'last_mode' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (last_mode == LAST_IS_NUMBER) {
^
In file included from /usr/include/lwqq/lwqq.h:5:0,
from /build/pidgin-lwqq/src/pidgin-lwqq/src/qq_types.h:7,
from /build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:13:
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c: In function 'action_about_webqq':
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:226:61: error: 'lwqq__async_impl_' undeclared (first use in this function)
format_append(flags, "<p><b>eventloop:</b> %s<br/></p>", lwqq__async_impl_->name);
^
/usr/include/lwqq/type.h:549:61: note: in definition of macro 'format_append'
snprintf(str + strlen(str), sizeof(str) - strlen(str), ##format)
^
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:226:61: note: each undeclared identifier is reported only once for each function it appears in
format_append(flags, "<p><b>eventloop:</b> %s<br/></p>", lwqq__async_impl_->name);
^
/usr/include/lwqq/type.h:549:61: note: in definition of macro 'format_append'
snprintf(str + strlen(str), sizeof(str) - strlen(str), ##format)
^
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c: In function 'init_plugin':
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:3024:7: warning: implicit declaration of function 'LWQQ_ASYNC_IMPLEMENT' [-Wimplicit-function-declaration]
LWQQ_ASYNC_IMPLEMENT(impl_purple);
^
/build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:3024:28: error: 'impl_purple' undeclared (first use in this function)
LWQQ_ASYNC_IMPLEMENT(impl_purple);
^
src/CMakeFiles/webqq.dir/build.make:77: recipe for target 'src/CMakeFiles/webqq.dir/webqq.c.o' failed
make[2]: *** [src/CMakeFiles/webqq.dir/webqq.c.o] Error 1
lwqq, pidgin-lwqq 都用dev分支呢。更新都是改的lwqq的。
嗯,两边都用的是 dev 分支……
新编译好的关于对话框: Compile Flags: -with-sqlite -with-mozjs -with-asyncdns eventloop: purple
但是我是编译没问题的, $> gcc --version gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1
你要不先全部卸载了clone一份新的编译吧。
我每次是在干净的 chroot 重新 clone 编译的……
$ gcc --version
gcc (GCC) 4.9.2 20150304 (prerelease)
paste 了一下两边完整的编译 log: https://paste.xinu.at/eMRk/
是我的错,pidgin-lwqq dev加入了补丁了。
嗯,能编译过了。不过我没有找到那个关于对话框…… 有找过 Pidgin 的关于和“Plugin Information",里面都没有上述信息……
哇,你们在讨论这个问题啊。 我刚想上来反馈,我现在可以重现问题: 我有两个号,一个号基本上每次都不用输入验证码,还有一个要输入。 现在我打开pidgin的时候自动登录两个号,要码的那个号,码弹出来后我点取消,pidgin立马就crash了。不取消没事儿。
帐号->QQ号->关于pidgin-lwqq
我现在要验证码的都直接登录不上去。不要验证码的到挺顺的,至于crash的问题,我看看去吧。
我测试没重现出来,提示输入的验证码错误。
好的,现在是这样了:
Compile Flags:
-with-libev
-with-sqlite
-with-mozjs
-with-asyncdns
eventloop: purple
我再多测试一会~
OK,purple的是使用pidgin自己的循环,就是登录的时候会卡一些UI,不过由于curl是异步DNS的,所以整个使用中都没有什么问题。另外减少bug发生概率。
我更新了代码,用dev编译安装,现在取消验证码不会crash了。 之前在帐号管理那边取消某个qq号前面的钩,也会导致crash,而且并没有取消成功。
之前说取消验证码 crash 的,是 master分支 0.4.3 的代码。
额,输入正确的验证码无法登录。。。
目前结果:运行中一直稳定,退出时死锁:
Program received signal SIGINT, Interrupt.
0x00007ffff4cc97ac in __lll_robust_lock_wait () from /usr/lib/libpthread.so.0
(gdb) bt
#0 0x00007ffff4cc97ac in __lll_robust_lock_wait () from /usr/lib/libpthread.so.0
#1 0x00007ffff4cc359c in __pthread_mutex_lock_full () from /usr/lib/libpthread.so.0
#2 0x00007fffd3cf0c96 in ?? () from /usr/lib/libcurl.so.4
#3 0x00007fffd3cca042 in ?? () from /usr/lib/libcurl.so.4
#4 0x00007fffd3cdb068 in ?? () from /usr/lib/libcurl.so.4
#5 0x00007fffd3ce680d in curl_easy_cleanup () from /usr/lib/libcurl.so.4
#6 0x00007fffd421a07c in lwqq_http_request_free (request=0x17fbab10) at /build/lwqq/src/lwqq/lib/http.c:396
#7 0x00007fffd4206f0b in receive_poll_message (req=0x17fbab10, req@entry=<error reading variable: value has been optimized out>,
post=0x28c564e0 "r=%7B%22ptwebqq%22%3A%229d1409159645ad3a0887ffca6de2d664b443c6d9f73beda831a4fac27840416d%22%2C%22clientid%22%3A%2227323851%22%2C%22psessionid%22%3A%228368046764001d636f6e6e7365727665725f77656271714031"..., post@entry=<error reading variable: value has been optimized out>)
at /build/lwqq/src/lwqq/lib/msg.c:1712
#8 0x00007fffd4215909 in vp_func_2p (func=<optimized out>, vp=<optimized out>, q=<optimized out>) at /build/lwqq/src/lwqq/lib/vplist.c:172
#9 0x00007fffd42155b6 in vp_do (cmd=..., retval=<optimized out>) at /build/lwqq/src/lwqq/lib/vplist.c:47
#10 0x00007fffd421a472 in lwqq_http_global_free (cleanup=(unknown: 335541304), cleanup@entry=LWQQ_CLEANUP_IGNORE) at /build/lwqq/src/lwqq/lib/http.c:1123
#11 0x00007fffd44644c2 in qq_close (gc=0x74f4100) at /build/pidgin-lwqq/src/pidgin-lwqq/src/webqq.c:1923
#12 0x00007ffff5235ea6 in _purple_connection_destroy () from /usr/lib/libpurple.so.0
#13 0x00007ffff522197b in purple_account_disconnect () from /usr/lib/libpurple.so.0
#14 0x00007ffff52352d3 in purple_connections_disconnect_all () from /usr/lib/libpurple.so.0
#15 0x00007ffff523be7d in purple_core_quit () from /usr/lib/libpurple.so.0
#16 0x00007ffff58352d5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#17 0x00007ffff584700c in ?? () from /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff584f668 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff584f8cf in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff693b926 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x00007ffff683781d in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#22 0x00007ffff6837bbb in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x00007ffff682590f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007ffff58352d5 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#25 0x00007ffff5846f02 in ?? () from /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff584f175 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#27 0x00007ffff584f8cf in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#28 0x00007ffff693cb9c in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#29 0x00007ffff6824054 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#30 0x00007ffff68244eb in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007ffff64992cc in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#32 0x00007ffff55609fd in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#33 0x00007ffff5560ce0 in ?? () from /usr/lib/libglib-2.0.so.0
#34 0x00007ffff5561002 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#35 0x00007ffff6823467 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#36 0x0000000000431a1b in main ()
那个锁是curl的锁吧,应该是在等dns结果。估计多等一会儿就好了。
今天早上又遇到了一次, 这次不是在退出时, 而是普通运行中. 一共死锁了三个多小时, 我只好杀掉了...
o^o, 这么头疼。。。难道得降级回用libev 循环!
我的在管理账户页面,取消勾选时会崩溃。 然后手机同意加友请求后,电脑有时也会莫名崩溃。
dev? 需要backtrace。
0.5.0 掉线时 100% crash:
(gdb) bt
#0 0x00007fffd4000c63 in check_connection_lost (ev=<optimized out>) at /build/lwqq/src/lwqq/lib/msg.c:1645
#1 0x00007fffd400f5d6 in vp_do (cmd=..., retval=retval@entry=0x0) at /build/lwqq/src/lwqq/lib/vplist.c:47
#2 0x00007fffd4011e40 in lwqq_async_event_finish (event=0x16a8d380) at /build/lwqq/src/lwqq/lib/async.c:185
#3 0x00007fffd4013be8 in async_complete (conn=0x38dbf2f0) at /build/lwqq/src/lwqq/lib/http.c:701
#4 0x00007fffd400f5d6 in vp_do (cmd=..., retval=retval@entry=0x0) at /build/lwqq/src/lwqq/lib/vplist.c:47
#5 0x00007fffd426562c in did_dispatch (param=0x2cec9560) at /build/pidgin-lwqq/src/pidgin-lwqq/src/qq_types.c:76
#6 0x00007ffff55613a3 in ?? () from /usr/lib/libglib-2.0.so.0
#7 0x00007ffff556090d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#8 0x00007ffff5560ce0 in ?? () from /usr/lib/libglib-2.0.so.0
#9 0x00007ffff5561002 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#10 0x00007ffff6823467 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#11 0x0000000000431a1b in main ()
我这里还是比较难触发,要是能编译debug版的,看到是哪句错了就好了。
好的。0.5.0 较前面版本稳定性有显著提升,只有包括这个问题在内的少数情况有 crash。我下次遇到的时候可以把行号打出来。
我这里升级到 0.4.2 后有比较频繁的 crash, 下面是其中一种情况的 backtrace. 0.4.1 20150208 的版本没有这些问题. 有其他几种情况的 backtrace 我会回复在这里.