bugWeeChat - Bugs: bug #33011, weechat crash when clicking a lot...

 
 

bug #33011: weechat crash when clicking a lot in mouse scripts

Submitter:  None
Submitted:  Thu 07 Apr 2011 09:54:46 AM UTC
   
 
Category:  script API plugins Severity:  3 - Normal
Item Group:  crash Status:  Invalid
Privacy:  Public Assigned to:  flashcode
Originator Name:  Originator Email:  * -email is unavailable-
Open/Closed:  Closed Release:  * 0.3.4
IRC nick:  Nei
* Mandatory Fields

Add a New Comment Rich Markup
   

Fri 29 Apr 2011 01:44:40 PM UTC, comment #2: 

It was probably a bug in Perl (caused by an eval), not in WeeChat.

Sebastien Helleu <flashcode>
Group administrator
Thu 21 Apr 2011 02:54:59 PM UTC, comment #1: 

I'm still not able to reproduce this crash.

Please give me detail about how to reproduce it:
- what scripts are required for crash? at least mouse.pl, buffers.pl? others?
- does it require patched version of weechat? (I hope it's not required, otherwise I can't fix such bug)

Sebastien Helleu <flashcode>
Group administrator
Thu 07 Apr 2011 09:54:46 AM UTC, original submission:  

Loading the mouse scripts from http://anti.teamidiot.de/static/nei/*/Code/WeeChat/0_WeeChat_MOUSE.html and clicking somewhere randomly, I can crash weechat reliably in about 5 minutes work.

(Might be a problem in the scripts, but I can't find it)

following is the crash backtrace as output by weechat and GDB

======= WeeChat backtrace =======
(written by WeeChat 0.3.5-dev, compiled on Mar 14 2011 20:46:15)
001  build-dev/src/core/../../../weesrc/src/core/wee-backtrace.c:168 [function weechat_backtrace]
002  build-dev/src/core/../../../weesrc/src/core/wee-debug.c:160 [function debug_sigsegv]
003  ??:0 [function ??]
004  /usr/src/debug/perl-5.10.0/op.c:1301 [function Perl_mod]
005  /usr/src/debug/perl-5.10.0/op.c:2320 [function Perl_localize]
006  /usr/src/debug/perl-5.10.0/perly.y:1085 [function Perl_yyparse]
007  /usr/src/debug/perl-5.10.0/pp_ctl.c:2916 [function S_doeval]
008  /usr/src/debug/perl-5.10.0/pp_ctl.c:3616 [function Perl_pp_entereval]
009  /usr/src/debug/perl-5.10.0/dump.c:1931 [function Perl_runops_debug]
010  /usr/src/debug/perl-5.10.0/perl.c:2647 [function Perl_call_sv]
011  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:244 [function weechat_perl_exec_pv]
012  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:291 [function weechat_perl_exec]
013  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3477 [function weechat_perl_api_hook_signal_cb]
014  build-dev/src/core/../../../weesrc/src/core/wee-hook.c:1984 [function hook_signal_send]
015  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3568 [function XS_weechat_api_hook_signal_send]
016  /usr/src/debug/perl-5.10.0/pp_hot.c:2850 [function Perl_pp_entersub]
017  /usr/src/debug/perl-5.10.0/dump.c:1931 [function Perl_runops_debug]
018  /usr/src/debug/perl-5.10.0/perl.c:2647 [function Perl_call_sv]
019  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:244 [function weechat_perl_exec_pv]
020  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:291 [function weechat_perl_exec]
021  build-dev/src/plugins/scripts/perl/../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3924 [function weechat_perl_api_hook_modifier_cb]
022  build-dev/src/core/../../../weesrc/src/core/wee-hook.c:2317 [function hook_modifier_exec]
023  build-dev/src/gui/../../../weesrc/src/gui/gui-input.c:126 [function gui_input_text_changed_modifier_and_signal]
024  build-dev/src/gui/curses/../../../../weesrc/src/gui/curses/gui-curses-keyboard.c:358 [function gui_keyboard_flush]
025  build-dev/src/gui/curses/../../../../weesrc/src/gui/curses/gui-curses-keyboard.c:494 [function gui_keyboard_read_cb]
026  build-dev/src/core/../../../weesrc/src/core/wee-hook.c:1256 [function hook_fd_exec]
027  build-dev/src/gui/curses/../../../../weesrc/src/gui/curses/gui-curses-main.c:315 [function gui_main_loop]
028  build-dev/src/core/../../../weesrc/src/core/weechat.c:445 [function main]
029  ??:0 [function ??]
030  /usr/src/packages/BUILD/glibc-2.10.1/csu/../sysdeps/x86_64/elf/start.S:116 [function _start]
======= End of  backtrace =======
#0  0x00007f99ca11c4e5 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f99ca11d9b0 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x0000000000410b0b in weechat_shutdown (return_code=1, crash=1) at ../../../weesrc/src/core/weechat.c:381
No locals.
#3  0x000000000042b0f8 in debug_sigsegv () at ../../../weesrc/src/core/wee-debug.c:160
No locals.
#4  <signal handler called>
No symbol table info available.
#5  0x00007f99c3a99929 in Perl_mod (my_perl=0xfa8090, o=0x14c2f50, type=0) at op.c:1301
        kid = <value optimized out>
        localize = <value optimized out>
#6  0x00007f99c3aa2f7a in Perl_localize (my_perl=0xfa8090, o=0x14c2f50, lex=0) at op.c:2319
No locals.
#7  0x00007f99c3a919c5 in Perl_yyparse (my_perl=0xfa8090) at perly.y:1085
        yystate = <value optimized out>
        yyn = 5
        yyresult = <value optimized out>
        yytoken = 67
        parser = 0x15c9d88
        ps = 0x15a49c8
        yyval = {ival = 0, pval = 0x0, opval = 0x0, gvval = 0x0, p_tkval = 0x0, i_tkval = 0}
#8  0x00007f99c3b2f32b in S_doeval (my_perl=0xfa8090, gimme=128, startop=0x0, outside=<value optimized out>, seq=1447) at pp_ctl.c:2916
        sp = <value optimized out>
        saveop = 0x12770b0
#9  0x00007f99c3b30096 in Perl_pp_entereval (my_perl=0xfa8090) at pp_ctl.c:3615
        sp = 0x15b64e0
        cx = 0xfd06f8
        sv = <value optimized out>
        gimme = 128
        tbuf = "_<(eval 1088)\000\000\000\357\005C\000\000\000\000\000\360d[\001\000\000\000\001"
        tmpbuf = <value optimized out>
        safestr = 0x1543dc8 "_<(eval 1088)"
        len = <value optimized out>
        ok = <value optimized out>
        runcv = 0x10655b8
        seq = 1447
        saved_hh = 0x0
#10 0x00007f99c3ac6ed8 in Perl_runops_debug (my_perl=0xfa8090) at dump.c:1931
No locals.
#11 0x00007f99c3aec14d in Perl_call_sv (my_perl=<value optimized out>, sv=0x1191e18, flags=<value optimized out>) at perl.c:2646
        sp = 0x15b63c8
        myop = {op_next = 0x0, op_sibling = 0x0, op_ppaddr = 0, op_targ = 0, op_type = 0, op_opt = 0, op_latefree = 0, op_latefreed = 0, op_attached = 0, op_spare = 0, op_flags = 66 'B', op_private = 0 '\000', op_first =
    0x0, op_other = 0x7fff2cc94990}
        method_op = {op_next = 0x1, op_sibling = 0x7f99c3ae88be, op_ppaddr = 0xba3428, op_targ = 16416912, op_type = 4, op_opt = 0, op_latefree = 0, op_latefreed = 0, op_attached = 0, op_spare = 0, op_flags = 0 '\000',
          op_private = 0 '\000', op_first = 0x15b63b0}
        oldmark = <value optimized out>
        retval = 0
        oldscope = 2
        oldcatch = 1 '\001'
        oldop = 0x0
        cur_env = {je_prev = 0xfa82f8, je_buf = {{__jmpbuf = {18423320, 4342188885718793873, 22766536, 4392431, 128, 1, -4342362450400051567, -4363694931605651823}, __mask_was_saved = 0, __saved_mask = {__val = {
    16418992, 140733193388032, 140733944777632, 8, 140298500181600, 32, 32, 128, 1, 140298497170009, 206158430232, 8, 16416912, 140298392787808, 22491072, 140298389615307}}}}, je_ret = 0, je_mustcatch = 0 '\000'}
#12 0x00007f99c3ddff7a in weechat_perl_exec_pv (func=0x128d960 "mouse_evt", format=0x7f99c3e6c38c "sss", argv=0x7fff2cc94c40) at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:243
        i = 3
        argc = 3
        hash = 0x1
        sp = 0x15b63c8
#13 0x00007f99c3de01be in weechat_perl_exec (script=0x11e3aa0, ret_type=0, function=0x128d960 "mouse_evt", format=0x7f99c3e6c38c "sss", argv=0x7fff2cc94c40)
    at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:291
        func = 0x128d960 "mouse_evt"
        count = 0
        ret_value = 0x128d944
        ret_i = 0x1599610
        mem_err = 32767
        ret_s = 0x13354b0
        old_perl_current_script = 0xbdfcb0
        old_context = 0x974df0
        sp = 0x15d4030
#14 0x00007f99c3e2169d in weechat_perl_api_hook_signal_cb (data=0x128d890, signal=0xbad878 "mouse", type_data=0xb88f88 "string", signal_data=0xba3428)
    at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3477
        script_callback = 0x128d890
        perl_argv = {0x128d980, 0xbad878, 0xba3428}
        empty_arg = ""
        value_str = "1", '\000' <repeats 62 times>
        rc = 0x500000005
        ret = 0
        free_needed = 0
#15 0x0000000000430697 in hook_signal_send (signal=0xbad878 "mouse", type_data=0xb88f88 "string", signal_data=0xba3428) at ../../../weesrc/src/core/wee-hook.c:1982
        ptr_hook = 0x128d900
        next_hook = 0x128da30
#16 0x00007f99c3e2337d in XS_weechat_api_hook_signal_send (my_perl=0x974df0, cv=0xb63030) at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3565
        signal = 0xbad878 "mouse"
        type_data = 0xb88f88 "string"
        number = 0
        sp = 0x15d4020
        ax = 4597
        mark = 0x15d4008
        items = 3
#17 0x00007f99c3af0d5a in Perl_pp_entersub (my_perl=0x974df0) at pp_hot.c:2847
        markix = <value optimized out>
        sp = 0x15d4020
        sv = 0xb63018
        gv = 0x7fff2cc96760
        cv = 0xb63030
        cx = <value optimized out>
        gimme = 128
        hasargs = 1 '\001'
#18 0x00007f99c3ac6ed8 in Perl_runops_debug (my_perl=0x974df0) at dump.c:1931
No locals.
#19 0x00007f99c3aec14d in Perl_call_sv (my_perl=<value optimized out>, sv=0xbaefe0, flags=<value optimized out>) at perl.c:2646
        sp = 0x15d4028
        myop = {op_next = 0x0, op_sibling = 0x0, op_ppaddr = 0, op_targ = 0, op_type = 0, op_opt = 0, op_latefree = 0, op_latefreed = 0, op_attached = 0, op_spare = 0, op_flags = 66 'B', op_private = 0 '\000', op_first =
    0x0, op_other = 0x7fff2cc94f90}
        method_op = {op_next = 0x0, op_sibling = 0x7f99c3ae88be, op_ppaddr = 0x8ca410, op_targ = 9915888, op_type = 4, op_opt = 0, op_latefree = 0, op_latefreed = 0, op_attached = 0, op_spare = 0, op_flags = 0 '\000',
          op_private = 0 '\000', op_first = 0x15d4008}
        oldmark = <value optimized out>
        retval = 0
        oldscope = 2
        oldcatch = 1 '\001'
        oldop = 0x0
        cur_env = {je_prev = 0x975058, je_buf = {{__jmpbuf = {12251104, 4342188885718793873, 22888488, 140733944784736, 0, 0, -4342362450198724975, -4363694931605651823}, __mask_was_saved = 0, __saved_mask = {__val = {
    9917968, 0, 5, 8, 140298500181600, 32, 32, 0, 0, 140298497170009, 0, 8, 9915888, 140298392787808, 20476000, 140298389615307}}}}, je_ret = 0, je_mustcatch = 0 '\000'}
#20 0x00007f99c3ddff7a in weechat_perl_exec_pv (func=0xbe1c80 "mouse_evt2", format=0x7f99c3e6c390 "ssss", argv=0x7fff2cc95240) at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:243
        i = 4
        argc = 4
        hash = 0x7fff2cc96760
        sp = 0x15d4028
#21 0x00007f99c3de01be in weechat_perl_exec (script=0xbdfcb0, ret_type=1, function=0xbe1c80 "mouse_evt2", format=0x7f99c3e6c390 "ssss", argv=0x7fff2cc95240)
    at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl.c:291
        func = 0xbe1c80 "mouse_evt2"
        count = 0
        ret_value = 0x47ca74
        ret_i = 0x0
        mem_err = 0
        ret_s = 0xbb3e78
        old_perl_current_script = 0x12ea170
        old_context = 0x10087c0
        sp = 0x10b7e40
#22 0x00007f99c3e2892b in weechat_perl_api_hook_modifier_cb (data=0xc89140, modifier=0x47ca63 "input_text_content", modifier_data=0x7fff2cc952f0 "0x13fb8b0", string=0x8ca410 "7")
    at ../../../../../weesrc/src/plugins/scripts/perl/weechat-perl-api.c:3924
        script_callback = 0xc89140
        perl_argv = {0xbe4b90, 0x47ca63, 0x7fff2cc952f0, 0x8ca410}
        empty_arg = ""
#23 0x0000000000430f2e in hook_modifier_exec (plugin=0x0, modifier=0x47ca63 "input_text_content", modifier_data=0x7fff2cc952f0 "0x13fb8b0", string=0x13fb460 "7") at ../../../weesrc/src/core/wee-hook.c:2317
        ptr_hook = 0xba4860
        next_hook = 0x900550
        new_msg = 0x0
        message_modified = 0x8ca410 "7"
#24 0x000000000045cd1f in gui_input_text_changed_modifier_and_signal (buffer=0x13fb8b0, save_undo=1) at ../../../weesrc/src/gui/gui-input.c:126
        str_buffer =
    "0x13fb8b0\000\000\000\000\000\000\000`g\311,\377\177\000\000\000\000\000\000\000\000\000\000\220S\311,\377\177\000\000@S\311,\377\177\000\000\064\000D\000\000\000\000\000\001\000\000\000\000\000\000\000\200S\311,\000\000\000\000`\264?\001\000\000\000\000\200S\311,\377\177\000\000]\317E\000\000\000\000\000W\233F\000\000\000\000\000\001\000\000\000\000\000\000\000\220S\311,\377\177\000\000\260\270?\001\000\000\000"
        new_input = 0x13f54a0 "\260\270?\001"
#25 0x000000000040b931 in gui_keyboard_flush () at ../../../../weesrc/src/gui/curses/gui-curses-keyboard.c:354
        i = 5
        key = 55
        insert_ok = 1
        key_str = "7\000\000\000\000\000\000\000\020:\340\000\000\000\000\000\270\364\336\000\000\000\000\000\000J\316\000\000\000\000"
        key_utf = 0x3000000008 <Address 0x3000000008 out of bounds>
        input_old = 0x0
#26 0x000000000040bcfa in gui_keyboard_read_cb (data=0x0, fd=0) at ../../../../weesrc/src/gui/curses/gui-curses-keyboard.c:492
        ret = 18
        i = 18
        accept_paste = 0
        cancel_paste = 0
        text_added_to_buffer = 1
        paste_lines = 1
        buffer =
    "\033[M ]7\033[M@]8\033[M@^8\311,\377\177\000\000硷Ù\177\000\000\b\000\000\000\060\000\000\000\060Y\311,\377\177\000\000PX\311,\377\177\000\000Y\032\026ʙ\177\000\000\320\071d\001\000\000\000\000\240!?\001\000\000\000\000\031\000\000\000\000\000\000\000+\026C\000\000\000\000\000\320\071d\001\000\000\000\000\250X\311,\377\177\000\000\017\000\000\000\000\000\000\000\377\377\377\377\377\377\377\377\017\000\000\000\000\000\000\000\020Y\311,\377\177\000\000\000Y\311,\377\177\000\000\330X\311,\377\177\000\000\250\022\277\000\000\000\000\000硷Ù\177\000\000\b\000\000\000\060\000\000\000\300Y\311,\377\177\000\000 W\335Ù\177\000\000硷Ù\177\000\000\b\000\000\000\060\000\000\000\340Y\311,\377\177\000\000\000Y\311,\377\177\000\000U\341\023ʙ\177\000\000\061\063d6790\000_va"...
#27 0x000000000042f1b4 in hook_fd_exec (read_fds=0x7fff2cc96590, write_fds=0x7fff2cc96510, exception_fds=0x7fff2cc96490) at ../../../weesrc/src/core/wee-hook.c:1254
        ptr_hook = 0x13352f0
        next_hook = 0x13efcb0
#28 0x000000000040c358 in gui_main_loop () at ../../../../weesrc/src/gui/curses/gui-curses-main.c:343
        hook_fd_keyboard = 0x13352f0
        tv_timeout = {tv_sec = 0, tv_usec = 44583}
        read_fds = {fds_bits = {1, 0 <repeats 15 times>}}
        write_fds = {fds_bits = {0 <repeats 16 times>}}
        except_fds = {fds_bits = {0 <repeats 16 times>}}
        max_fd = 8
        ready = 1
#29 0x0000000000410cfe in main (argc=1, argv=0x7fff2cc96768) at ../../../weesrc/src/core/weechat.c:443
No locals.
(gdb)

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by flashcode (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-10-22 flashcode Open/ClosedOpen Closed
    2011-04-29 flashcode Item GroupNone crash
        StatusNeed Info Invalid
    2011-04-21 flashcode StatusNone Need Info
        Assigned toNone flashcode
        Release3.3-dev 0.3.4

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code