Okay, so I figured out that the multiple Lua VMs detected is because the version of Lua was slightly different than the compiled .so file for LuaXML_lib, even though it said it was the right version. So I recompiled it and added it into the /usr/local/lib/lua/5.2 folder, and I put LuaXml.lua into /usr/local/share/lua/5.2. Now, I'm seeing these undefined symbol errors and will need to tackle this next: 2013-12-12 07:41:53.395054 [ERR] mod_lua.cpp:199 error loading module 'LuaXML_lib' from file '/usr/local/lib/lua/5.2/LuaXML_lib.so': /usr/local/lib/lua/5.2/LuaXML_lib.so: undefined symbol: lua_gettop stack traceback: [C]: in ? [C]: in function 'require' /usr/local/share/lua/5.2/LuaXml.lua:1: in main chunk [C]: in function 'require' /opt/freeswitch/scripts/parser.lua:2: in main chunk James On Wed, Dec 11, 2013 at 6:26 PM, James Mortensen < james.mortensen@synclio.com> wrote:
Just to update this thread, I created the following Lua script:
print('hello world from lua')^M print(_VERSION) print("---\nREADY.")
and then ran it from the CLI. The output was:
freeswitch@fs> lua test.lua hello world from lua Lua 5.2 --- READY.
Also, I found part of the answer to my problem. FreeSWITCH Lua was updated to 5.2 on Nov 12th, 2771498707c194c70cf25ad9473be66ef59cfb46, so I went ahead and grabbed the corresponding LuaXml library for version 5.2 not 5.1.
2013-12-12 02:12:42.615049 [ERR] mod_lua.cpp:199 multiple Lua VMs detected stack traceback: [C]: in ? [C]: in function 'require' /usr/local/share/lua/5.2/LuaXml.lua:1: in main chunk [C]: in function 'require' /opt/freeswitch/scripts/parser.lua:2: in main chunk
So now it's a matter of tracing down this error, which is where this mailing list post left off: http://freeswitch-users.2379917.n2.nabble.com/Not-really-a-Freeswitch-issue-...
I'll keep pounding away at this and update the list once I figure it out.
James
On Wed, Dec 11, 2013 at 4:05 PM, James Mortensen < james.mortensen@synclio.com> wrote:
Hello,
I just ran git pull and rebuilt FreeSWITCH, and now Lua is unable to locate the LuaXml library.
module 'LuaXml' not found: no field package.preload['LuaXml'] no file '/usr/local/lib/lua/5.2/LuaXml.so' no file '/usr/local/lib/lua/5.2/loadall.so' no file './LuaXml.so'
and another:
module 'LuaXml' not found: no field package.preload['LuaXml'] no file './LuaXml.so' no file '/usr/local/lib/lua/5.1/LuaXml.so' no file '/usr/lib/x86_64-linux-gnu/lua/5.1/LuaXml.so' no file '/usr/lib/lua/5.1/LuaXml.so' no file '/usr/local/lib/lua/5.1/loadall.so'
Note that in /usr/local/lib/lua/5.1 there is a LuaXML_lib.so, but no LuaXml.so.
Those are example of one of the many error messages the system has been spitting out at me. Tt's complaining about not finding a LuaXml.so despite none actually existing on the box and despite following the instructions in the wiki.
I already followed the instructions in http://wiki.freeswitch.org/wiki/Mod_lua for installing LuaXml via the luarocks package manager, so since that didn't work I tried including the library manually from the luaxml website. Although the lua on the box can run the test.lua script successfully, I am not having luck in FreeSWITCH.
I also tried recompiling from scratch running the bootstrap and configure scripts. No luck.
I've also tried installing both Lua 5.1 and Lua 5.2. I realize the wiki shows 5.1 being used, but I already tried that and moved onto trying other things. Still working on trying to figure out what happened, but wanted to see if anyone else is having any trouble with this as well. I realize Lua is embedded in FreeSWITCH, so I'm a bit confused about why it can't find the library.
Using lua 5.2 on the box, I can run the test.lua script that users the library, what version of Lua does FreeSWITCH use? I'm not convinced it's using an embedded version of Lua based on the fact that I see it trying to use the paths from the Lua installed from apt-get.
James