I think this might be a missing dependency from nixio.so on liblua.so.

uhttpd_lua.so does depend on it:
$ mips-openwrt-linux-objdump -x uhttpd_lua.so | grep NEEDED
  NEEDED               libcrypt.so.0
  NEEDED               liblua.so.5.1.5
  NEEDED               libm.so.0
  NEEDED               libdl.so.0
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.0

But nixio.so doesn't, so I think luaX symbols don't get resolved by dl:
$ mips-openwrt-linux-objdump -x nixio.so | grep NEEDED
  NEEDED               libcrypt.so.0
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.0

On Sun, Mar 17, 2013 at 1:34 PM, Catalin Patulea <[email protected]> wrote:
> Got nixio.so rebuilt with symbols, segfault is in luci/libs/nixio/src/nixio.c:
>
> /* entry point */
> NIXIO_API int luaopen_nixio(lua_State *L) {
>   /* create metatable */
>   luaL_newmetatable(L, NIXIO_META);  // XXX segfault here
>
>
> On Sun, Mar 17, 2013 at 1:12 PM, Catalin Patulea <[email protected]> wrote:
>> I'm running r35995 and seeing uhttpd segfault at startup when the Lua
>> handler is enabled:
>>
>> # /usr/sbin/uhttpd -f -h /www -r gate -l /
>> luci -L /usr/lib/lua/luci/sgi/uhttpd.lua -t 60 -T 30 -A 1 -n 3 -p 0.0.0.0:80
>> Segmentation fault
>>
>> I ran it under gdbserver, here's a backtrace:
>> (gdb) bt
>> #0  0x00000000 in ?? ()
>> #1  0x77e6c18c in luaopen_nixio () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/lua/nixio.so
>> #2  0x77ebb888 in luaD_precall () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #3  0x77ebba40 in luaD_call () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #4  0x77eb65e8 in lua_call () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #5  0x77ed6d44 in ll_require () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #6  0x77ebb888 in luaD_precall () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #7  0x77ec8e84 in luaV_execute () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #8  0x77ebba58 in luaD_call () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #9  0x77eb65e8 in lua_call () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #10 0x77ed6d44 in ll_require () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #11 0x77ebb888 in luaD_precall () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #12 0x77ec8e84 in luaV_execute () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #13 0x77ebba58 in luaD_call () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #14 0x77ebaae0 in luaD_rawrunprotected () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #15 0x77ebbca4 in luaD_pcall () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #16 0x77eb66b8 in lua_pcall () from
>> staging_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/usr/lib/liblua.so.5.1.5
>> #17 0x77eed178 in uh_lua_state_init () at
>> /mnt/shared/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/uhttpd-2013-01-22/lua.c:168
>> #18 lua_plugin_init (o=<optimized out>, c=<optimized out>)
>>     at 
>> /mnt/shared/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/uhttpd-2013-01-22/lua.c:292
>> #19 0x00402150 in main (argc=20, argv=0x0) at
>> /mnt/shared/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/uhttpd-2013-01-22/main.c:375
>>
>> I looked around, there's something about module imports being done
>> differently in Lua 5.1, but I'm not sure how exactly it applies to
>> uhttpd:
>> http://forum.luahub.com/index.php?topic=2569.0
>>
>> Any ideas or additional information I can provide?
_______________________________________________
openwrt-users mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-users

Reply via email to