apache / apisix-python-plugin-runner

Apache APISIX Python plugin runner
https://apisix.apache.org/
Apache License 2.0
35 stars 24 forks source link

Example failed on mac #35

Open oosugi84 opened 2 years ago

oosugi84 commented 2 years ago

I followed https://apisix.apache.org/docs/python-plugin-runner/getting-started/,
apisix version is 2.10.
cloned python-plugin-runner from git.

When I call curl http://127.0.0.1:9080/get -i, the result is 503, and the log of apisix is

2021/10/22 09:41:33 [warn] 44#44: *2 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 45#45: *1 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 49#49: *6 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 46#46: *5 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 47#47: *4 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 48#48: *3 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 09:41:33 [warn] 52#52: *7 [lua] plugin.lua:192: load_stream(): new plugins: {"limit-conn":true,"ip-restriction":true,"mqtt-proxy":true}, context: init_worker_by_lua*
2021/10/22 10:11:36 [crit] 48#48: *164901 connect() to unix:/tmp/runner.sock failed (2: No such file or directory), client: 172.25.0.1, server: _, request: "GET /get HTTP/1.1", host: "127.0.0.1:9080"
2021/10/22 10:11:36 [error] 48#48: *164901 [lua] init.lua:617: phase_func(): failed to connect to the unix socket unix:/tmp/runner.sock: no such file or directory, client: 172.25.0.1, server: _, request: "GET /get HTTP/1.1", host: "127.0.0.1:9080"
2021/10/22 10:11:36 [warn] 48#48: *164901 [lua] plugin.lua:680: run_plugin(): ext-plugin-pre-req exits with http status code 503, client: 172.25.0.1, server: _, request: "GET /get HTTP/1.1", host: "127.0.0.1:9080"
oosugi84 commented 2 years ago

And I tried production mode, the error is

2021/10/22 10:51:54 [warn] 48#48: *2330 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:54 [warn] 49#49: *2332 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:54 [warn] 47#47: *2333 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:54 [warn] 45#45: *2334 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:54 [warn] 46#46: *2335 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:54 [warn] 44#44: *2336 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:57 [warn] 52#52: *137 [lua] init.lua:699: respawning new runner..., context: ngx.timer
2021/10/22 10:51:57 [error] 52#69: lua pipe child execvp() failed while executing python3 (2: No such file or directory)
2021/10/22 10:51:57 [warn] 52#52: *137 [lua] init.lua:687: runner exited with reason: exit, status: 1, context: ngx.timer
2021/10/22 10:51:57 [warn] 52#52: *137 [lua] init.lua:592: flush conf token lrucache, context: ngx.timer
2021/10/22 10:51:57 [warn] 52#52: *137 [lua] init.lua:697: respawn runner 3 seconds later with cmd: ["python3","\/Users\/oosugi\/workspace\/apisix\/apisix-python-plugin-runner\/apisix\/main.py","start"], context: ngx.timer

But I do have a python3 in path:

oosugi@zphzs-MacBook-Pro ~ % which python3
/usr/bin/python3
oosugi@zphzs-MacBook-Pro ~ % python3 -V
Python 3.8.2
shuaijinchao commented 2 years ago

After downloading, you must first execute make install to install it. In production mode, the execution path of python needs to be in the global variable or configure the full path of the python executable file.

avnihs02 commented 1 year ago

facing same issue, i am not able to add python plugin runner in Kubernetes environment in production mode. can someone help with this. error : lua pipe child execvp() failed while executing python3 (2: No such file or directory)