[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LuaJIT, x86_64 linux 3.0.4-1, GCC 4.6.1-4, segfaults during garbage collection when using FFI
- From: David Hollander <dhllndr@...>
- Date: Wed, 14 Sep 2011 07:43:26 -0500
> unanchored GC references to FFI cdata
Could you give an example of an unanchored reference?
On Wed, Sep 14, 2011 at 5:25 AM, Mike Pall <mikelu-1109@mike.de> wrote:
> David Hollander wrote:
>> I am experiencing intermittent segfaults when using the FFI, binding
>> to the glob headers or poll headers and creating lots of stuff. strace
>> reports SEGV_MAPERR, when using x86_64 Linux 3.0.4-1 and GCC 4.6.1-4
>> (Arch Linux). The same program does not produce segfaults on Linux
>> 2.6.38-10 and GCC 4.5.2-8 (Ubuntu), or when garbage collection is
>> turned off using: garbagecollection 'stop' . The LuaJIT version is the
>> git HEAD.
>
> This could be anything, esp. problems in your code with unanchored
> GC references to FFI cdata. GC problems usually show up as random
> crashes, so it's not surprising to see this happen on one system,
> but not on others. I don't think the GCC version has any influence,
> except it causes a slightly different memory layout.
>
> SEGV_MAPERR hints that you should check whether all library
> handles from ffi.load() are anchored. Most of the time this is
> already done indirectly through upvalues (e.g. use of mylib.myfunc
> in a Lua function). That's not the only possible cause for this
> error, though.
>
> To track the problem down: compile everything with debug symbols,
> compile LuaJIT with assertions turned on and run it under gdb.
>
> --Mike
>
>