[asterisk-bugs] [JIRA] (ASTERISK-26312) Crash occurs when lua code executing

Yuriy Topin (JIRA) noreply at issues.asterisk.org
Tue Aug 23 07:11:56 CDT 2016


Yuriy Topin created ASTERISK-26312:
--------------------------------------

             Summary: Crash occurs when lua code executing
                 Key: ASTERISK-26312
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26312
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: PBX/pbx_lua
    Affects Versions: 13.8.0, 1.8.15.1, 13.11.0
         Environment: Linux 3.19.0-66-generic #74-Ubuntu SMP Tue Jul 19 15:07:04 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
            Reporter: Yuriy Topin


Hi,
We uses asterisk and from time to time improve logic in extensions.lua. After some changes in extensions.lua, asterisk has been crached. I've tried to make some changes but realy for me not clear why after some changes in lua asterisk  craches. 

I've tried different version of asterisk, try reinstall lua but without success.
Have found simillar question on the forum but it without answer.

Lua code example:



bt's output:
#0  0x00007ffff59b4267 in __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007ffff59b5eca in __GI_abort () at abort.c:89
#2  0x00007ffff59f7c53 in __libc_message (do_abort=do_abort at entry=1, fmt=fmt at entry=0x7ffff5b101a8 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff5a00391 in malloc_printerr (ptr=<optimized out>, str=0x7ffff5b0c2dd "corrupted double-linked list", action=1) at malloc.c:4965
#4  _int_free (av=0x7fff74000020, p=<optimized out>, have_lock=0) at malloc.c:3981
#5  0x00007ffff5a0389c in __GI___libc_free (mem=<optimized out>) at malloc.c:2950
#6  0x00007fff8f9d22d9 in l_alloc () from /usr/lib/asterisk/modules/pbx_lua.so
#7  0x00007fff8f9ca4fe in luaM_realloc_ () from /usr/lib/asterisk/modules/pbx_lua.so
#8  0x00007fff8f9ce868 in luaH_free () from /usr/lib/asterisk/modules/pbx_lua.so
#9  0x00007fff8f9c9455 in sweeplist () from /usr/lib/asterisk/modules/pbx_lua.so
#10 0x00007fff8f9ca231 in luaC_freeall () from /usr/lib/asterisk/modules/pbx_lua.so
#11 0x00007fff8f9cdafe in close_state () from /usr/lib/asterisk/modules/pbx_lua.so
#12 0x00007fff8f9c0c62 in lua_state_destroy (data=0x7fff74003520) at pbx_lua.c:129
#13 0x00000000004f91a1 in ast_datastore_free (datastore=0x7fff74001f30) at datastore.c:71
#14 0x00000000004b324f in ast_channel_destructor (obj=0x7fff6400d518) at channel.c:2209
#15 0x000000000045de08 in internal_ao2_ref (user_data=0x7fff6400d518, delta=-1, file=0x628cab "astobj2.c", line=516, 
    func=0x628ed1 <__FUNCTION__.8824> "__ao2_ref") at astobj2.c:445
#16 0x000000000045e0b9 in __ao2_ref (user_data=0x7fff6400d518, delta=-1) at astobj2.c:516
#17 0x00000000004b4a26 in ast_hangup (chan=0x7fff6400d518) at channel.c:2692
#18 0x000000000057b121 in __ast_pbx_run (c=0x7fff6400d518, args=0x0) at pbx.c:4459
#19 0x000000000057b4f1 in pbx_thread (data=0x7fff6400d518) at pbx.c:4551
#20 0x0000000000601cd5 in dummy_start (data=0x7fff64012810) at utils.c:1237
#21 0x00007ffff649d6aa in start_thread (arg=0x7fff6cda9700) at pthread_create.c:333
#22 0x00007ffff5a85eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109


bt-full's output
#0  0x00007ffff59b4267 in __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
        resultvar = 0
        pid = 7323
        selftid = 7371
#1  0x00007ffff59b5eca in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x200000000, sa_sigaction = 0x200000000}, sa_mask = {__val = {21163024, 140735019648224, 
              8594514105, 21162992, 21162912, 140735019648592, 4583756, 32, 140735019648296, 104, 140734871177040, 326417514571, 51, 0, 21162992, 
              140735019648368}}, sa_flags = 1946157088, sa_restorer = 0x5}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff59f7c53 in __libc_message (do_abort=do_abort at entry=1, fmt=fmt at entry=0x7ffff5b101a8 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
        ap = {{gp_offset = 40, fp_offset = 32767, overflow_arg_area = 0x7fff6cda87d0, reg_save_area = 0x7fff6cda8760}}
        fd = 22
        on_2 = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3  0x00007ffff5a00391 in malloc_printerr (ptr=<optimized out>, str=0x7ffff5b0c2dd "corrupted double-linked list", action=1) at malloc.c:4965
        buf = "00007fff74071b60"
        cp = <optimized out>
#4  _int_free (av=0x7fff74000020, p=<optimized out>, have_lock=0) at malloc.c:3981
        size = 176
        fb = <optimized out>
        nextchunk = <optimized out>
        nextsize = 1552
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = <optimized out>
        errstr = 0x0
        locked = <optimized out>
#5  0x00007ffff5a0389c in __GI___libc_free (mem=<optimized out>) at malloc.c:2950
        ar_ptr = <optimized out>
        p = <optimized out>
        hook = <optimized out>
#6  0x00007fff8f9d22d9 in l_alloc () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#7  0x00007fff8f9ca4fe in luaM_realloc_ () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#8  0x00007fff8f9ce868 in luaH_free () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#9  0x00007fff8f9c9455 in sweeplist () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#10 0x00007fff8f9ca231 in luaC_freeall () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#11 0x00007fff8f9cdafe in close_state () from /usr/lib/asterisk/modules/pbx_lua.so
No symbol table info available.
#12 0x00007fff8f9c0c62 in lua_state_destroy (data=0x7fff74003520) at pbx_lua.c:129
No locals.
#13 0x00000000004f91a1 in ast_datastore_free (datastore=0x7fff74001f30) at datastore.c:71
        res = 0
#14 0x00000000004b324f in ast_channel_destructor (obj=0x7fff6400d518) at channel.c:2209
        chan = 0x7fff6400d518
        vardata = 0x7fff6400d4c0
        f = 0x63728b
        headp = 0x53ccc6 <__ast_pthread_mutex_unlock+39>
        datastore = 0x7fff74001f30
        device_name = "\302/c\000\000\000\000\000\374Ac\000\000\000\000\000\260\212\332l\254\016\000\000\313\rc\000\000\000\000\000`\213\332l\377\177\000\000\370\324\000d\000\000\000\000 \213\332l\377\177\000\000A\331E\000\000\000\000\000Єc\000\000\000\000\000\030\325\000d\377\177\000"
        callid = 0x54265e <ast_log+343>
        __PRETTY_FUNCTION__ = "ast_channel_destructor"
#15 0x000000000045de08 in internal_ao2_ref (user_data=0x7fff6400d518, delta=-1, file=0x628cab "astobj2.c", line=516, 
    func=0x628ed1 <__FUNCTION__.8824> "__ao2_ref") at astobj2.c:445
        obj = 0x7fff6400d4f8
        obj_mutex = 0x63728b
        obj_rwlock = 0x7fff6400d518
        current_value = 0
        ret = 1
        __PRETTY_FUNCTION__ = "internal_ao2_ref"
#16 0x000000000045e0b9 in __ao2_ref (user_data=0x7fff6400d518, delta=-1) at astobj2.c:516
        __FUNCTION__ = "__ao2_ref"
#17 0x00000000004b4a26 in ast_hangup (chan=0x7fff6400d518) at channel.c:2692
        __PRETTY_FUNCTION__ = "ast_hangup"
#18 0x000000000057b121 in __ast_pbx_run (c=0x7fff6400d518, args=0x0) at pbx.c:4459
        found = 1
---Type <return> to continue, or q <return> to quit---
        res = -1
        autoloopflag = 0
        error = 1
        pbx = 0x7fff74001c50
        callid = 0x0
        __PRETTY_FUNCTION__ = "__ast_pbx_run"
#19 0x000000000057b4f1 in pbx_thread (data=0x7fff6400d518) at pbx.c:4551
        c = 0x7fff6400d518
#20 0x0000000000601cd5 in dummy_start (data=0x7fff64012810) at utils.c:1237
        __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, -4826640983371337144, 0, 140735207204863, 140735019653568, 0, 
                -4826640983396502968, 4826322696954917448}, __mask_was_saved = 0}}, __pad = {0x7fff6cda8ef0, 0x0, 0x0, 0x0}}
        __cancel_routine = 0x45153f <ast_unregister_thread>
        __cancel_arg = 0x7fff6cda9700
        __not_first_call = 0
        ret = 0x0
        a = {start_routine = 0x57b4cc <pbx_thread>, data = 0x7fff6400d518, 
          name = 0x7fff64014370 "pbx_thread", ' ' <repeats 11 times>, "started at [ 4577] pbx.c ast_pbx_start()"}
#21 0x00007ffff649d6aa in start_thread (arg=0x7fff6cda9700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7fff6cda9700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140735019652864, 4826321873244467784, 0, 140735207204863, 140735019653568, 0, 
                -4826640983373434296, -4826338452604374456}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, 
              cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#22 0x00007ffff5a85eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.







--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list