From owner-freebsd-bugs@FreeBSD.ORG Sun Feb 8 08:14:50 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8329916A4CE; Sun, 8 Feb 2004 08:14:50 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7F7B143D39; Sun, 8 Feb 2004 08:14:50 -0800 (PST) (envelope-from iedowse@FreeBSD.org) Received: from freefall.freebsd.org (iedowse@localhost [127.0.0.1]) i18GEobv033736; Sun, 8 Feb 2004 08:14:50 -0800 (PST) (envelope-from iedowse@freefall.freebsd.org) Received: (from iedowse@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i18GEo3C033732; Sun, 8 Feb 2004 08:14:50 -0800 (PST) (envelope-from iedowse) Date: Sun, 8 Feb 2004 08:14:50 -0800 (PST) From: Ian Dowse Message-Id: <200402081614.i18GEo3C033732@freefall.freebsd.org> To: jau@iki.fi, iedowse@FreeBSD.org, freebsd-bugs@FreeBSD.org Subject: Re: kern/62524: SIGALRM is not delivered when res_send() hangs waiting in kevent() X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Feb 2004 16:14:50 -0000 Synopsis: SIGALRM is not delivered when res_send() hangs waiting in kevent() State-Changed-From-To: open->closed State-Changed-By: iedowse State-Changed-When: Sun Feb 8 08:07:35 PST 2004 State-Changed-Why: Submitter confirms that it was a problem with the application, not kevent or the resolver: >>Are you sure that there isn't something more needed for the problem >>to occur? I can't reproduce this as you describe with the program >>below; the SIGARLM handler keeps getting called as expected. >> >>Ian > You got it quite right. > I saw two separate calls to gethostbyaddr() one of which was > not properly inside the region of code which is interruptible > by SIGALRM. > Obviously enough the one outside of the interruptible region > had no signal delivered because the signal was blocked from > delivery. > > > Cheers, > // jau ... >Quoting Ian Dowse: >> >> Does that mean the PR can be closed? I'm not sure if it's related, >> but there is another PR, bin/4696, which reports this problem in >> ping(8). Ping will hang in a state where it ignores ^C and sends >> no packets until a gethostbyaddr() call completes. I think it only >> happens when ping gets an error reply and tries to look up the IP >> that sent the error. > > Right, my complaint should have never been written. The code > just happened to be big and complex enough to hide the fact > there were calls to gethostbyaddr() also inside a region that > was protected from signals. All name resolution should have > been considered "nice to have" and done only when there was > nothing more important to do. ... http://www.freebsd.org/cgi/query-pr.cgi?pr=62524