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

0.4.2 频繁 crash #625

Closed felixonmars closed 9 years ago

felixonmars commented 9 years ago

我这里升级到 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 <global>) 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=<optimized out>) 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 <global>) 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
felixonmars commented 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>
xiehuc commented 9 years ago

你贴一下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.

felixonmars commented 9 years ago
#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__ */
felixonmars commented 9 years ago

另外补充一下, 0.4.2 即使不崩溃, 在我这里也会在每约 25 分钟时所有帐号掉线. 我有调整过设置中的 relink 时间到 20 分钟, 10 分钟, 甚至更短, 但是没有帮助. 0.4.1 20150208 的版本也没有这个问题 (保持在线 ~10 个小时可以不掉线).

xiehuc commented 9 years ago

不会吧,我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.

xiehuc commented 9 years ago

现在开学了反而没时间改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.

felixonmars commented 9 years ago

我有打开和关闭 SSL 后分别测试了, 都有相同的问题. 目前最稳定的方法暂时是用 0208 的版本加上我的那个比较丑陋的 patch...

xiehuc commented 9 years ago

好的,那就先降级吧,待我哪日修复了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.

EricInBj commented 9 years ago

确实偶尔会crash,掉线偶尔也有,但似乎不是所有帐号掉,再观察观察。。

felixonmars commented 9 years ago

PS: 这个问题依然存在……

xiehuc commented 9 years ago

我这里没发现啊,有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.

felixonmars commented 9 years ago

依然和一楼的 bt 基本一样,时不时遇到一次~

xiehuc commented 9 years ago

dispatch_lost 的那个我应该已经在dev修复了。因为登录的时候切换状态导致的错误。

xiehuc commented 9 years ago

至于第一个,太模糊了,要切换到其他线程去开才能知道是怎么回事。

felixonmars commented 9 years ago

好的,下次我试试提供更多信息。

xiehuc commented 9 years ago

能有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.

felixonmars commented 9 years ago

得到一个不同的 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 ()
xiehuc commented 9 years ago

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.

felixonmars commented 9 years ago

额,我这里 pidgin 经常用到 2G 内存以上……最高时候超过 10G……

xiehuc commented 9 years ago

pidgin 用到2G都不如直接用wineQQ了。你登录了很多帐号吗? 2015-04-18 12-06-41

felixonmars commented 9 years ago

嗯,算是比较多吧…… 2015-04-18-121710-7c3abf

xiehuc commented 9 years ago

你也用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.

felixonmars commented 9 years ago

你看我没有勾上……就是因为 telegram 崩得比 lwqq 还厉害 :P

xiehuc commented 9 years ago

你们机器上是不是用的有异步DNS支持的curl?

我在dev分支上改了一下,如果有异步DNS则不再使用两个线程了。不知道行不行。

felixonmars commented 9 years ago

看起来是的…… 我马上测试。

$ 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
xiehuc commented 9 years ago

最后结果如何?

felixonmars commented 9 years ago

啊,昨天忘记回复了。用 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
xiehuc commented 9 years ago

lwqq, pidgin-lwqq 都用dev分支呢。更新都是改的lwqq的。

felixonmars commented 9 years ago

嗯,两边都用的是 dev 分支……

xiehuc commented 9 years ago

新编译好的关于对话框: Compile Flags: -with-sqlite -with-mozjs -with-asyncdns eventloop: purple

xiehuc commented 9 years ago

但是我是编译没问题的, $> gcc --version gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1

你要不先全部卸载了clone一份新的编译吧。

felixonmars commented 9 years ago

我每次是在干净的 chroot 重新 clone 编译的……

$ gcc --version
gcc (GCC) 4.9.2 20150304 (prerelease)

paste 了一下两边完整的编译 log: https://paste.xinu.at/eMRk/

xiehuc commented 9 years ago

是我的错,pidgin-lwqq dev加入了补丁了。

felixonmars commented 9 years ago

嗯,能编译过了。不过我没有找到那个关于对话框…… 有找过 Pidgin 的关于和“Plugin Information",里面都没有上述信息……

EricInBj commented 9 years ago

哇,你们在讨论这个问题啊。 我刚想上来反馈,我现在可以重现问题: 我有两个号,一个号基本上每次都不用输入验证码,还有一个要输入。 现在我打开pidgin的时候自动登录两个号,要码的那个号,码弹出来后我点取消,pidgin立马就crash了。不取消没事儿。

xiehuc commented 9 years ago

帐号->QQ号->关于pidgin-lwqq

我现在要验证码的都直接登录不上去。不要验证码的到挺顺的,至于crash的问题,我看看去吧。

xiehuc commented 9 years ago

我测试没重现出来,提示输入的验证码错误。

felixonmars commented 9 years ago

好的,现在是这样了:

Compile Flags:
-with-libev
-with-sqlite
-with-mozjs
-with-asyncdns
eventloop: purple

我再多测试一会~

xiehuc commented 9 years ago

OK,purple的是使用pidgin自己的循环,就是登录的时候会卡一些UI,不过由于curl是异步DNS的,所以整个使用中都没有什么问题。另外减少bug发生概率。

EricInBj commented 9 years ago

我更新了代码,用dev编译安装,现在取消验证码不会crash了。 之前在帐号管理那边取消某个qq号前面的钩,也会导致crash,而且并没有取消成功。

之前说取消验证码 crash 的,是 master分支 0.4.3 的代码。

EricInBj commented 9 years ago

额,输入正确的验证码无法登录。。。

felixonmars commented 9 years ago

目前结果:运行中一直稳定,退出时死锁:

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 ()
xiehuc commented 9 years ago

那个锁是curl的锁吧,应该是在等dns结果。估计多等一会儿就好了。

felixonmars commented 9 years ago

今天早上又遇到了一次, 这次不是在退出时, 而是普通运行中. 一共死锁了三个多小时, 我只好杀掉了...

xiehuc commented 9 years ago

o^o, 这么头疼。。。难道得降级回用libev 循环!

gshmu commented 9 years ago

我的在管理账户页面,取消勾选时会崩溃。 然后手机同意加友请求后,电脑有时也会莫名崩溃。

xiehuc commented 9 years ago

dev? 需要backtrace。

felixonmars commented 9 years ago

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 ()
xiehuc commented 9 years ago

我这里还是比较难触发,要是能编译debug版的,看到是哪句错了就好了。

felixonmars commented 9 years ago

好的。0.5.0 较前面版本稳定性有显著提升,只有包括这个问题在内的少数情况有 crash。我下次遇到的时候可以把行号打出来。