From owner-freebsd-questions@FreeBSD.ORG Thu Jun 6 18:00:23 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 5B36BE06 for ; Thu, 6 Jun 2013 18:00:23 +0000 (UTC) (envelope-from bc979@lafn.org) Received: from zoom.lafn.org (zoom.lafn.org [108.92.93.123]) by mx1.freebsd.org (Postfix) with ESMTP id 1B53F1012 for ; Thu, 6 Jun 2013 18:00:22 +0000 (UTC) Received: from mbook.westell.com ([50.123.213.115]) (authenticated bits=0) by zoom.lafn.org (8.14.3/8.14.2) with ESMTP id r56I0ELE041700 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Thu, 6 Jun 2013 11:00:16 -0700 (PDT) (envelope-from bc979@lafn.org) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: System Calls that do DNS From: Doug Hardie In-Reply-To: Date: Thu, 6 Jun 2013 11:00:05 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <12AE26D3-2C19-4C0C-917F-2D1569ADC518@lafn.org> References: <20130604033930.GA10393@uriel.asininetech.com> To: "freebsd-questions@freebsd.org List" X-Mailer: Apple Mail (2.1508) X-Virus-Scanned: clamav-milter 0.97 at zoom.lafn.org X-Virus-Status: Clean X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jun 2013 18:00:23 -0000 On 3 June 2013, at 22:21, Doug Hardie wrote: >=20 > On 3 June 2013, at 20:39, staticsafe wrote: >=20 >> On Mon, Jun 03, 2013 at 07:57:07PM -0700, Doug Hardie wrote: >>> I have an unusual situation. A program is doing a DNS lookup and = often the IP address has no reverse DNS entries. As a result the = program hangs for several timeouts. The call is not being made directly = in its code, but is occurring in a system call. There are no specific = calls to DNS, its something else doing it. I have been trying to track = down which system call is doing it, but without success so far. I have = tried syslog calls around each of the system calls I thought might be = the culprit, but my guessing is not very good. How can I identify the = system call that is calling DNS? If I can find it, I hopefully can find = another way to do whatever it does that does not involve a reverse DNS = lookup. >>>=20 >>>=20 >>=20 >> Use truss: >> http://www.freebsd.org/cgi/man.cgi?query=3Dtruss >>=20 >> The truss utility traces the system calls called by the specified >> process or program. >> --=20 >> staticsafe >> O< ascii ribbon campaign - stop html mail - www.asciiribbon.org >> Please don't top post - http://goo.gl/YrmAb >> Don't CC me! I'm subscribed to whatever list I just posted on. >>=20 >=20 > Unfortunately truss does not show anything more than ktrace. I know = what is going out on the internet connection. Its a plain old reverse = DNS request. The question is what library module (probably not a system = call now that I think about it) is making that request. Interestingly = enough, adding the IP address with a dummy name in /etc/hosts causes the = reverse request to succeed and there are no time delays. So whatever = module it is, is not using bind. Bind doesn't check the hosts files as = far as I can tell. > _______________________________________________ After considering all the advice I received, the method I found that = worked was to start the process and when it entered the reverse DNS = timeout, quickly find the process ID and do a gdb on that process. Then = a where command showed the entire stack which included all the module = calls. I had to rebuild the process with debugging first. The IPv6 API when getting the client information will also do a reverse = DNS lookup unless you specifically tell it not to do so. Changing that = eliminated the lookup and the timeouts. Thanks to all. -- Doug=