Hopefully this would be the answer to your problem -
https://github.com/apache/trafficserver/issues/5158

Thanks.

Kit

On Mon, Mar 11, 2019 at 9:54 AM Eric Chaves <[email protected]> wrote:
>
> Hi Shun, thanks for helping me out in this out-of-topic situation. I spent 
> the weekend reading about this error on the internet (starting with the links 
> you shared) trying to figure out what I could be doing wrong but with my 
> limited knowledge on lua I wasn't able to figure it out.
>
> The comments on luasocket issue's implies that this error could be due to a 
> misconfigured build whose symbols were not being linked/exported properly, so 
> I tried to check the symbol resolution for tslua.so using the command line 
> 'nm -gC libexec/trafficserver/tslua.so | grep lua_' using different build 
> configs (with only luajit installed/not lua, without luajit, with luajit path 
> explicitly set, etc). In all builds the results were the same: every lua_* 
> symbol is marked as Undefined (39 symbols in total).
>
> I'm not sure if this means something since the tslua plugin does execute lua 
> properly, but this was as far as I got.
>
> I also tried to install luasocket from it's source code but it failed because 
> it didn't find some lua headers (ie lua.h, etc) which enforces that I'm 
> somehow breaking the build but I can't point my finger on anything. As far as 
> I can tell I'm following the steps present both at the docs and at 
> trafficserve's confluence. I've also based my self on some 3rd part 
> dockerfiles at github.
>
> If have some spare time could you please take a look on my Dockerfile 
> (https://github.com/ericchaves/ats-lua-playground/blob/master/trafficserver.dockerfile)
>  so see if you spot any mistakes that I may be doing (maybe I'm missing some 
> required CC flag)? Or if you could share your build steps (even if it's not 
> dockerbased) so I can compare with mine.
>
> If you can't help me any further for any reason, that's ok either. You have 
> being of great support no matter what. =)
>
> Regards,
>
> Em sex, 8 de mar de 2019 às 13:15, Shu Kit Chan <[email protected]> 
> escreveu:
>>
>> I am not sure what's wrong with your setup.  i have used luasocket
>> before with no problem. perhaps this will shed some light ?
>>
>> https://github.com/diegonehab/luasocket/issues/158
>> https://github.com/diegonehab/luasocket/issues/87
>>
>> Thanks.
>>
>> Kit
>>
>> On Thu, Mar 7, 2019 at 6:59 AM Eric Chaves <[email protected]> wrote:
>> >
>> > Nice!, It solved this error but  now I got the error "ERROR: [ts_lua] 
>> > lua_pcall failed: error loading module 'socket.core' from file 
>> > '/opt/ats/lua_modules/lib/lua/5.1/socket/core.so': 
>> > /opt/ats/lua_modules/lib/lua/5.1/socket/core.so: undefined symbol: 
>> > lua_gettop.
>> >
>> > Everything was built using lua 5.1. Any clues why I could be getting the 
>> > undefined symbol? Could I be missing some dependency?
>> >
>> > Em qua, 6 de mar de 2019 às 18:37, Shu Kit Chan <[email protected]> 
>> > escreveu:
>> >>
>> >> Try not to call "add_package_path" / "add_package_cpath" inside the
>> >> lua module .
>> >> Call them in the same lua file containing the do_remap() function and
>> >> see if your problem is solved.
>> >>
>> >> Kit
>> >>
>> >> On Wed, Mar 6, 2019 at 1:23 PM Eric Chaves <[email protected]> wrote:
>> >> >
>> >> > Hi folks,
>> >> >
>> >> > This may be a little off-topic. Not sure if questions regarding lua 
>> >> > plugins/lua scripts should be asked here in the list. If so forgive me 
>> >> > and please point me the proper place to ask.
>> >> >
>> >> > I'm trying to learn TS lua script's. At first I just followed the 
>> >> > sample code for reverse host header presented in the lua_plugin docs by 
>> >> > writing a module named my_module.lua required inside a do_remap() with 
>> >> > the following content:
>> >> >
>> >> > local my_module = {}
>> >> > function my_module.send_response()
>> >> >   ts.debug('executing my_module.send_response')
>> >> >   ts.client_response.header['Rhost'] = ts.ctx['rhost']
>> >> >   return 0
>> >> > end
>> >> > return my_module
>> >> >
>> >> > This works fine and after that I tried to add some code to connect into 
>> >> > a local redis instance using libs installed by luarocks (eg.: luarocks 
>> >> > install --tree /opt/ats/lua_modules luasocket)
>> >> >
>> >> >  I found some scripts at github that uses the ts.add_package_path to 
>> >> > include the new modules and based on them I added those two lines at 
>> >> > the top of my_module.lua:
>> >> >
>> >> > ts.add_package_path('/opt/ats/lua_modules/share/lua/5.1/?.lua;/opt/ats/lua_modules/share/lua/5.1/?/init.lua')
>> >> > ts.add_package_cpath('/opt/ats/lua_modules/share/lua/5.1/?.so')
>> >> >
>> >> > By doing so, even without actually requiring any new module (ie no 
>> >> > other changes in my_module logic) when my do_remap tries require 
>> >> > my_module, I got an error: ERROR: [ts_lua] lua_pcall failed: 
>> >> > /opt/ats/lua-plugins/my_module.lua:6: can't get the instance conf
>> >> >
>> >> > So it's clear that I'm breaking something using the 
>> >> > ts.add_package_path. I've also tried to mangle with package.path 
>> >> > variable with the same outcome.
>> >> >
>> >> > What am I doing wrong and how should I do to add those new packages?
>> >> >
>> >> > Cheers,
>> >> >
>> >> > Eric
>> >> >

Reply via email to