Open woshitianbz opened 6 months ago
Is it possible that my domain name is too lengthy?
2024/04/15 06:25:19 [error] 941#0: *23624 [lua] job.lua:286: execute(): [timer-ng] failed to run timer unix_timestamp=1713162319690.000000;counter=531:meta=@/usr/local/share/lua/5.1/kong/resty/dns/client.lua:807:asyncQuery(): /usr/local/openresty/lualib/resty/dns/resolver.lua:384: bad argument #1 to 'lshift' (number expected, got nil) Steps to reproduce the issue: Configure DNS domain in Kong. For a domain with a length of 60 characters, e.g., xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx, when resolving 45 IPs under the domain, it behaves normally, but when resolving 54 IPs, it encounters an exception. For a domain with a length of 59 characters, e.g., xxxxxxxx-xx-xxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx, when resolving 45 IPs under the domain, it behaves normally, even with 54 IPs.
hi @woshitianbz could you show the dns response to help developers to debug if there is no sensible information
You could log it with some dns client tool like $ dig @<DNS_SERVER_IP> <domain>
Due to sensitive information, I've masked part of the content. Here's the translation:
nslookup xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Server: xxx.xx.xxx.x
Address: xxx.xx.xxx.x#53
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.161
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.162
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.163
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.164
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.165
Name: xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
Address: 17.183.214.166
...
Total of 54 records
xxxxxxxx-xx-xxxxx.xxx-x-xxxxxx.x.xx.xxxx.xxxxxx.xxxxxx.xxxxx
After a lot of efforts, I cannot reproduce the issue. You may need to provide a precise method to reproduce this problem. Based on the information provided, I can only guess the steps to reproduce, which makes it difficult to accurately replicate the issue. The developers need a simple test case, which may include a client Lua script and server DNS output or configuration for a DNS server, along with clear instructions. With this script and instructions, we can effectively reproduce the problem.
And if you can consistently reproduce this problem, you can also debug it step by step.
I ran some tests with Coredns and lua-resty-dns library according to your reply. Finnally, my test client got the right answers and did not report error.
ERROR: /usr/local/openresty/lualib/resty/dns/resolver.lua:384: bad argument #1 to 'lshift' (number expected, got nil) stack traceback: /usr/local/openresty/lualib/resty/dns/resolver.lua:384: in function 'parse_section' /usr/local/openresty/lualib/resty/dns/resolver.lua:745: in function 'parse_response' /usr/local/openresty/lualib/resty/dns/resolver.lua:909: in function 'query' test.lua:19: in function 'file_gen' init_worker_by_lua:45: in function
[C]: in function 'xpcall'
init_worker_by_lua:52: in function
It seems to be an issue with lua-resty-dns. Do you have any suggestions for the next steps?