From owner-freebsd-hackers Tue Apr 14 18:52:34 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id SAA14330 for freebsd-hackers-outgoing; Tue, 14 Apr 1998 18:52:34 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from alembic.isegoria.com (ppp0a018.std.com [208.192.100.18]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id BAA14247 for ; Wed, 15 Apr 1998 01:52:20 GMT (envelope-from aecolley@world.std.com) Received: from localhost (alembic.isegoria.com) [127.0.0.1] by alembic.isegoria.com with esmtp (Exim 1.82 #1) id 0yPHMy-0003zP-00; Tue, 14 Apr 1998 21:52:12 -0400 X-Mailer: exmh version 1.6.9 8/22/96 From: Adrian Colley To: Kyle McPeek Cc: aecolley@alembic.isegoria.com, freebsd-hackers@FreeBSD.ORG Subject: Re: portmap problem... In-reply-to: Your message of "Mon, 13 Apr 1998 16:28:24 EDT." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 14 Apr 1998 21:52:06 -0400 Message-Id: Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > Apr 2 20:51:48 harp portmap[110]: svc_run: - select failed: No child > processes > I have child_max set to 128 and the limits for daemon set to infinity. > Any thing else I should do? Any ideas? The rational explanation I offer is that SIGCHLD is being delivered to portmap at the same time as its return from select with a different error. The reap() function (portmap.c) runs wait3() in a while loop until eventually it returns -1 and sets errno to ECHILD. Back to the caller, and select, returning -1, has its errno overwritten (it was probably EINTR). Timer granularity means that this kind of race cannot really happen, so the interrupt must be delivered as select returns to user mode. In fact, it's almost certain that the delivery of SIGCHLD caused the select to wakeup. portmap probably should restore errno in reap(). It's odd that this doesn't happen more often, isn't it? Have I made a basic mistake in my analysis? --adrian. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message