[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: LuaSocket and strange DNS failures
- From: mchalkley@...
- Date: Thu, 9 May 2013 11:48:13 -0400
Thursday, May 9, 2013, 8:43:18 AM, you wrote:
> There are a few possible causes:
> 1. The machine's dns server list is changed.
> 2. The DNS server is either broken or is, itself, having connectivity issues.
> 3. The DNS server IP address is actually transient; DHCP, based on external
> external IP, etc.
> Should be easy to determine the actual cause.
> When the machine machine is rebooted, bring up a console and use
> ipconfig /all
> Or whatever the current equivalent is. It's been a while since I futzed with
> Windows.
> Note the DNS IP addresses and determine their source and reachability.
> If the DNS servers are permanent (not DHCP based and don't change) and always reachable
> (within your network, etc), then the next step is to wait until the problem
> occurs again then recheck the network configuration. If the DNS server list
> has changed, you have a new path for investigation because something or
> someone has changed it. If not, you can focus on the servers; are they still
> on the network (ping), what happens when you use nslookup.exe to make a
> request to the servers, etc.
> As you can tell, this isn't really related to Lua so you'd probably be better
> served by asking the question or more specific versions in a Windows (admin?)
> forum.
> -Gyepi
Thanks for the suggestions, Gyepi, but it's not as simple as that. As
I mentioned, it's happening on multiple machines and workstations (8
out of 8 that I've tried, so far), and it takes a few days before the
problem manifests itself. None of the machines have any DNS issues
when my program isn't running, and all of them eventually do when it
is, so it's definitely somehthing my program is breaking. The memory
usage doesn't go up, so it's not something like that, but it's
definitely causing all DNS lookups on the machine to start failing.
I noticed that I was doing this in the routine that calls DNS (the
only place in my program that I do):
local socket = require("socket") -- create local instance of socket
local ip = socket.dns.toip(machine)
return ip
I'm also doing a require "socket" globally at the top of my code, so I
commented out the local socket = require in the routine, thinking that
maybe I was stepping on myself, or that maybe the local socket wasn't
getting disposed of properly (or something like that). It still works
fine (in the sense that it functions properly), so I guess I'll just
have to let it run a few days to see if that does any good.
Thanks again,
Mark