lua-nginx-module
lua-nginx-module copied to clipboard
resty http got BAD ARGUMENT exception by accident
This place is for bug reports and development discussions only. For general questions and discussions, please join the openresty-en mailing list instead: https://openresty.org/en/community.html ERROR Stacks:
2023/04/06 14:14:08 [error] 121939#121939: *28808 lua entry thread aborted: runtime error: /usr/local/apisix//deps/share/lua/5.1/resty/http.lua:365: bad argument #1 to 'str_sub' (string expected, got boolean)
stack traceback:
coroutine 0:
[C]: in function 'str_sub'
/usr/local/apisix//deps/share/lua/5.1/resty/http.lua:365: in function '_receive_status'
/usr/local/apisix//deps/share/lua/5.1/resty/http.lua:777: in function 'request'
/usr/local/apisix//deps/share/lua/5.1/resty/consul.lua:156: in function 'get'
/usr/local/apisix/apisix/discovery/consul/init.lua:342: in function </usr/local/apisix/apisix/discovery/consul/init.lua:273>, context: ngx.timer
Here is the code snippet:
local function call_url1(url)
local c = http.new()
-- call the url
end
local function call_url2(url)
local c = http.new()
-- call the url
end
function _M.connect(premature)
if premature then
return
end
local url1_thread, url1_err = ngx.thread.spawn(call_url1, url1)
if not url1_thread then
log.error("spawn url1 thread error")
return
end
local url2_thread, url2_err = ngx.thread.spawn(call_url2, url2)
if not url2_thread then
log.error("spawn url2 thread error")
return
end
local thread_wait_ok, wait_res = ngx.thread.wait(url1_thread, url2_thread)
ngx.thread.kill(url1_thread)
ngx.thread.kill(url2_thread)
if not thread_wait_ok then
log.error("failed to wait thread: ", err, ", wait_res: ", wait_res)
return
end
local c3 = http.new()
-- call other url and got exception here
end
Ensure you have provided the following details while reporting a problem:
- The exact version of the related software, including but not limited to the OpenResty version
(if any), the NGINX core version, the
ngx_luamodule version,
nginx version: openresty/1.21.4.1
and your operating system version.
- A minimal and standalone test case that others can easily run on their side and reproduce the issue you are seeing.
- Do not simply say "something is broken" or "something does not work". Always provide as much details as possible. Always describe the symptoms and your expected results.
- You can (temporarily) enable the nginx debugging logs to see the internal workings
of NGINX in your nginx''s
error.logfile. See http://nginx.org/en/docs/debugging_log.html The same instructions apply equally well to OpenResty. - If you are seeing crashes, please provide the full backtrace for the crash. See https://www.nginx.com/resources/wiki/start/topics/tutorials/debugging/#core-dump for more details.
Please, do not use Chinese here. This place is considered English only. If you really want to use Chinese, please join and post to the openresty (Chinese) mailing list instead. Please see https://openresty.org/en/community.html Thanks for your cooperation.
The error is thrown by /usr/local/apisix//deps/share/lua/5.1/resty/http.lua:365: in function '_receive_status You'd better report this bug to lua-resty-http.](https://github.com/ledgetech/lua-resty-http