Entry
My tinydns server/dnscache isn't answering/appears locked up - why?
Aug 25th, 2002 06:04
Brian Coogan,
One common and confusing reason tinydns locks up is when it cannot
write to its logging process it will hang waiting for the logging
attempt to complete. The symptom of this is that it hangs while
trying
to write to fd 2, sample strace output looking like:
write(2, "98a3d501:2986:9bad + 0001 ftp.coolpagehosting.com\n", 50
This means that tinydns is hanging while trying to write a log entry
to
the pipe connecting it to the multilog process as the pipe is full.
This means multilog isn't reading from the pipe, which in turn usually
means that the disk file system containing the logs is probably full.
You can verify this by stracing the corresponding multilog to see why
multilog isn't reading from the pipe. You can figure out which is the
right multilog using this command:
lsof /service/tinydns/log/main/lock
You may also want to run 'svstat /service/*'
and 'svstat /service/*/log' to ensure all the services and their
corresponding multilog processes are operational.
Note: it's unusual for multilog to run out of space as it cycles the
log files very carefully, thus making sure the disk space usage never
varies appreciably. Also, the above comments on tinydns apply equally
to dnscache, just replace 'tinydns' with 'dnscache'.
There may be other reasons tinydns/dnscache lock up, this is just one
common reason.
You should also check obvious things like, are your tinydns (and
dnscache if appropriate) daemons running? Do they respond to queries
locally at all? (If you get "Connection refused", that means the
daemons aren't listening to their ports at all). Are you querying the
right host (check /etc/resolv.conf)? Don't use nslookup, it fails -
use Djb's tools (http://cr.yp.to/djbdns/tools.html) or the host or dig
commands. Check out Djb's basic troubleshooting guide:
http://cr.yp.to/djbdns/faq/tinydns.html#testing
Bear in mind that tinydns won't answer queries for a domain unless it
beleives it is serving data for that domain - you must have either
a '.' (or '&' and 'Z') line for the domain in your data file - see the
tinydns-data documentation for more information.
In the final analysis, ask the mailing list for help. Include an
exact account of what is happening including logfiles, configuration,
your OS details, etc, and what you expect to happen. Include the real
dns server name so people can test against it. (Please read the FAQTS
page on the mailing list before asking questions though!)
-- acknowledgement to: Rob Mayoff and Doug Sisk May 2001