[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: luajit-2.0.0-beta6 crash
- From: Justin Cormack <justin@...>
- Date: Wed, 02 Mar 2011 18:18:23 +0000
Large amounts of (non tail) recursion runs out of memory eventually. But
not necessarily in the same place with Valgrind.
Its not an issue.
Justin
On Wed, 2011-03-02 at 13:07 -0500, Henk Boom wrote:
> Hi, I just tried compiling LuaJIT2, turning on debugging symbols as
> well as asserts and valgrind support in the Makefile. I haven't
> managed to get it to work reliably yet, and I feel like I must be
> doing something wrong to hit problems so quickly in a program that
> many people are using without problem.
>
> The quick summary is that it seems to work when run in valgrind, but
> not outside. I am using Ubuntu 10.04 on an x84_64 intel processor, and
> get the same results with beta5, which is the only other version I
> have installed. Here are the full results:
>
> ----------------------------------------
> henk@invincible-spell:~$ cat badfib.lua
> function badfib(n)
> return n < 2 and n or badfib(n-1) + badfib(n-2)
> end
>
> print(badfib(tonumber((...))))
>
> ----------------------------------------
> henk@invincible-spell:~$ luajit-2.0.0-beta6 badfib.lua 15
> 610
>
> ----------------------------------------
> henk@invincible-spell:~$ luajit-2.0.0-beta6 badfib.lua 16
> Segmentation fault
>
> ----------------------------------------
> henk@invincible-spell:~$ lua badfib.lua 16
> 987
>
> ----------------------------------------
> henk@invincible-spell:~$ gdb luajit-2.0.0-beta6
> GNU gdb (GDB) 7.1-ubuntu
> Copyright (C) 2010 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 "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /usr/local/bin/luajit-2.0.0-beta6...done.
> (gdb) run badfib.lua 16
> Starting program: /usr/local/bin/luajit-2.0.0-beta6 badfib.lua 16
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000394cffed in ?? ()
> (gdb) bt
> #0 0x00000000394cffed in ?? ()
> #1 0x0000000040000f18 in ?? ()
> #2 0x000000000041f9e0 in lj_vm_hotcall ()
> #3 0x000000000040c2aa in lua_pcall (L=0x40000378,
> nargs=<value optimized out>, nresults=-1, errfunc=<value optimized out>)
> at lj_api.c:1027
> #4 0x0000000000403ec6 in docall (L=0x40000378, narg=1, clear=0)
> at luajit.c:120
> #5 0x0000000000404eb4 in handle_script (L=0x40000378) at luajit.c:284
> #6 pmain (L=0x40000378) at luajit.c:488
> #7 0x000000000041dfa9 in lj_BC_FUNCC ()
> #8 0x000000000040b6d2 in lua_cpcall (L=0xfffffffb40007c38, func=0x400082e0,
> ud=0x400082c0) at lj_api.c:1049
> #9 0x0000000000403dff in main (argc=3, argv=0x7fffffffe2c8) at luajit.c:516
>
> ----------------------------------------
> henk@invincible-spell:~$ valgrind luajit-2.0.0-beta6 badfib.lua 16
> ==9115== Memcheck, a memory error detector
> ==9115== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
> ==9115== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for
> copyright info
> ==9115== Command: luajit-2.0.0-beta6 badfib.lua 16
> ==9115==
> 987
> ==9115==
> ==9115== HEAP SUMMARY:
> ==9115== in use at exit: 0 bytes in 0 blocks
> ==9115== total heap usage: 1 allocs, 1 frees, 568 bytes allocated
> ==9115==
> ==9115== All heap blocks were freed -- no leaks are possible
> ==9115==
> ==9115== For counts of detected and suppressed errors, rerun with: -v
> ==9115== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
>
> ----------------------------------------
>
> Please let me know if there is more useful information I can provide.
>
> henk
>