|
On 2013-05-09 11:49 AM, <mchalkley@mail.com> wrote:
>
> 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
>
>
require() normally only loads a module once; further loads of the same module return a cached copy. See package.loaded.