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

有时候发消息时会奔潰 #575

Closed o3o3o closed 10 years ago

o3o3o commented 10 years ago

kernel: [1383863.592349] pidgin[11108]: segfault at 3d656d99 ip b4d8613a sp bfca0c70 error 4 in libsqlite3.so.0.8.6[b4d5a000+a2000]

o3o3o commented 10 years ago

在pidgin启动后, 获取QQ好友正常,然后选择一个好友,发送消息,输入内容后,回车,就会卡住,并且过不一会儿会奔潰掉。 ==OS== Linux 3.5.0-54-generic #81~precise1-Ubuntu SMP Tue Jul 15 04:05:58 UTC 2014 i686 i686 i386 GNU/Linux

LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise

xiehuc commented 10 years ago

现在都在忙着找工作在,没时间测试。 你有空的话跟着这篇教程 https://github.com/xiehuc/pidgin-lwqq/wiki/How-To-Debug 提交一下backtrace吧。

El Psy Congroo

xiehuc commented 10 years ago

初步看来是sqlite3, 也就是数据库的错误. 大概是建立缓存的时候大量写数据库的时候出问题了.

xiehuc commented 10 years ago

这,没有backtrace我什么也看不出来。只知道是dbus错了。你检查下是否开了什么其它插件吧。其它的我就想不到了,没有backtrace

o3o3o commented 10 years ago

刚才看了下backstrace是lib-gnome 库的问题,属于ubuntu的问题。没事啦,打扰了

xiehuc commented 10 years ago

en,没事

El Psy Congroo

在 2014年8月11日,9:36,Michael notifications@github.com 写道:

刚才看了下backstrace是lib-gnome 库的问题,属于ubuntu的问题。没事啦,打扰了

— Reply to this email directly or view it on GitHub.

o3o3o commented 10 years ago

启动后,打开一个好友窗口,发送消息时的,gdb过程及backstrace过程如下: gdb pidgin GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: http://bugs.launchpad.net/gdb-linaro/... Reading symbols from /usr/bin/pidgin...(no debugging symbols found)...done. (gdb) r Starting program: /usr/bin/pidgin [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6929b40 (LWP 5472)] [New Thread 0xb5fffb40 (LWP 5473)] [New Thread 0xb3f4eb40 (LWP 5475)] [New Thread 0xb32f2b40 (LWP 5476)] [New Thread 0xa7afeb40 (LWP 5478)] [New Thread 0xa6cffb40 (LWP 5479)] Verify code: !BGO Get verify code OK [Aug 15 08:48:20] WARNING[5469]: http.c:655 check_multi_info: async retcode:47 [Thread 0xb32f2b40 (LWP 5476) exited] [New Thread 0xb32f2b40 (LWP 5483)] [Thread 0xa7afeb40 (LWP 5478) exited] [Thread 0xb32f2b40 (LWP 5483) exited] [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] WARNING[5469]: http.c:655 check_multi_info: async retcode:28 [Aug 15 08:48:52] ERROR[5469]: internal.c:165 lwqq__process_simple_response: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:487 process_simple_string: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:531 process_qq_level: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:411 process_qqnumber: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:487 process_simple_string: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:531 process_qq_level: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:487 process_simple_string: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:531 process_qq_level: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:487 process_simple_string: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:531 process_qq_level: unexpected response http:0, response: (null) [Aug 15 08:48:52] ERROR[5469]: info.c:531 process_qq_level: unexpected response http:0, response: (null)

Program received signal SIGSEGV, Segmentation fault. 0xb573ee96 in sqlite3_clear_bindings () from /usr/lib/i386-linux-gnu/libsqlite3.so.0 (gdb)

(gdb) bt
#0  0xb573ee96 in sqlite3_clear_bindings ()
   from /usr/lib/i386-linux-gnu/libsqlite3.so.0
#1  0xb5302b42 in sws_query_reset (stmt=0x0)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/swsqlite.c:166
#2  0xb5309b65 in lwdb_userdb_update_buddy_info (db=0x80a76058, 
    p_buddy=0xbfffceb8)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/lwdb.c:755
#3  0xb530b0b9 in lwdb_userdb_insert_buddy_info (db=0x80a76058, 
    p_buddy=0xbfffcee8)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/lwdb.c:728
#4  0xb5352d64 in login_stage_f (lc=0x809e36f0)
    at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/webqq.c:1299
#5  0xb53034aa in vp_func_p (func=0xb5352d00 <login_stage_f>, vp=0xbfffcf68, 
    q=0x0) at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/vplist.c:149
#6  0xb5303136 in vp_do (cmd=..., retval=0x0)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/vplist.c:44
#7  0xb530577e in lwqq_async_event_finish (event=0x80b78c78)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/async.c:155
#8  0xb530860c in lwqq_http_cleanup (lc=0x809e36f0)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/http.c:1039
#9  0xb52f7e06 in lwqq_client_free (client=0x809e36f0)
    at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/type.c:193
#10 0xb535c2a6 in qq_account_free (ac=0x809bcf18)
---Type <return> to continue, or q <return> to quit---
    at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/qq_types.c:191
#11 0xb5351b75 in qq_close (gc=0x809bb438)
    at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/webqq.c:1967
#12 0xb746237d in _purple_connection_destroy () from /usr/lib/libpurple.so.0
#13 0xb744b976 in purple_account_disconnect () from /usr/lib/libpurple.so.0
#14 0xb74613db in ?? () from /usr/lib/libpurple.so.0
#15 0xb7590a3f in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#16 0xb758fd46 in g_main_context_dispatch ()
   from /lib/i386-linux-gnu/libglib-2.0.so.0
#17 0xb75900e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#18 0xb759052b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
#19 0xb79cdbff in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
#20 0x80028c58 in main ()

(gdb) bt full

0 0xb573ee96 in sqlite3_clear_bindings ()

from /usr/lib/i386-linux-gnu/libsqlite3.so.0 No symbol table info available.

1 0xb5302b42 in sws_query_reset (stmt=0x0)

at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/swsqlite.c:166

No locals.

2 0xb5309b65 in lwdb_userdb_update_buddy_info (db=0x80a76058,

p_buddy=0xbfffceb8)
at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/lwdb.c:755
    buddy = <optimized out>
    stmt = 0x0
    cache = 1
    sql = 0xb5311de8 "UPDATE buddies SET nick=?,markname=?,long_nick=?,level=?,last_modify=datetime('now') WHERE qqnumber=?;"

3 0xb530b0b9 in lwdb_userdb_insert_buddy_info (db=0x80a76058,

p_buddy=0xbfffcee8)
at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/lwdb.c:728
    buddy = 0x80b63100
    stmt = 0x0
    sql = 0xb5312930 "INSERT INTO buddies (qqnumber) VALUES (?);"
    cache = LWQQ_OP_OK

4 0xb5352d64 in login_stage_f (lc=0x809e36f0)

at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/webqq.c:1299

---Type to continue, or q to quit--- buddy = 0x80b63100 group = 0xb5319ff4 ac = 0x809bcf18 flags =

5 0xb53034aa in vp_func_p (func=0xb5352d00 , vp=0xbfffcf68,

q=0x0) at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/vplist.c:149
    p1 = <optimized out>

6 0xb5303136 in vp_do (cmd=..., retval=0x0)

at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/vplist.c:44
    n = <optimized out>
    p = <optimized out>

7 0xb530577e in lwqq_async_event_finish (event=0x80b78c78)

at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/async.c:155
    internal = 0x80b78c78
    evset_ = 0x80d0aa38

8 0xb530860c in lwqq_http_cleanup (lc=0x809e36f0)

at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/http.c:1039
    item = 0x80b80668
    tvar = 0x0

9 0xb52f7e06 in lwqq_client_free (client=0x809e36f0)

at /build/buildd/lwqq-0.3.1+git201406232314.1e6f6f7/lib/type.c:193
    lc_ = 0x809e36f0
    b_entry = <optimized out>

---Type to continue, or q to quit--- b_next = c_entry = c_next = g_entry = g_next = d_entry = d_next =

10 0xb535c2a6 in qq_account_free (ac=0x809bcf18)

at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/qq_types.c:191

No locals.

11 0xb5351b75 in qq_close (gc=0x809bb438)

at /build/buildd/pidgin-lwqq-0.3.1+git201406201605.e895237/src/webqq.c:1967
    ac = 0x809bcf18
    err = LWQQ_EC_OK
    g = 0x0

12 0xb746237d in _purple_connection_destroy () from /usr/lib/libpurple.so.0

No symbol table info available.

13 0xb744b976 in purple_account_disconnect () from /usr/lib/libpurple.so.0

No symbol table info available.

14 0xb74613db in ?? () from /usr/lib/libpurple.so.0

No symbol table info available.

15 0xb7590a3f in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0

---Type to continue, or q to quit--- No symbol table info available.

16 0xb758fd46 in g_main_context_dispatch ()

from /lib/i386-linux-gnu/libglib-2.0.so.0 No symbol table info available.

17 0xb75900e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

18 0xb759052b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0

No symbol table info available.

19 0xb79cdbff in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0

No symbol table info available.

20 0x80028c58 in main ()

No symbol table info available.

xiehuc commented 10 years ago

这是因为网络不好(大概),然后lwqq退出,然后执行清理的时候会执行未完成网络的回调。但此时因为没有数据,所以会出错。

你可以试一试lwqq和pidgin-lwqq的dev分支,退出时不会再执行回调了。