We use lua-nginx-module API:ngx.socket.udp between two host's communication. it seems like host_A <=====> host_B using UDP
when response QPS more than 2000, we found receive timeout in host_A errorlog.
in order to make sure that it is the problem of ngx.socket.udp.recevie(), we give every request and response a uniqeness number. then we use tcpdump to capture the datagram packets which number equal to host_A errorlog timeout number.
finally,we found that the timeout packets have been received in host_A kernel,but host_A nginx can not receive these packets.
so, I want to know that why udp.receive can not receive these packets?
our hosts are 8core16g
our code:
function _M.receive(self)
local sock = self.sock if not sock then return nil, "not initialized" end local data, err = sock:receive() return data,err end