From owner-freebsd-current@FreeBSD.ORG Sun Jan 30 09:35:28 2005 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E65AB16A4CE; Sun, 30 Jan 2005 09:35:28 +0000 (GMT) Received: from obsecurity.dyndns.org (CPE0050040655c8-CM00111ae02aac.cpe.net.cable.rogers.com [69.199.47.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id AADB643D48; Sun, 30 Jan 2005 09:35:28 +0000 (GMT) (envelope-from kris@obsecurity.org) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id D216A51A01; Sun, 30 Jan 2005 01:35:27 -0800 (PST) Date: Sun, 30 Jan 2005 01:35:27 -0800 From: Kris Kennaway To: "David G. Lawrence" Message-ID: <20050130093527.GA89923@xor.obsecurity.org> References: <20050130025217.GA32612@xor.obsecurity.org> <20050130075422.GL48777@opteron.dglawrence.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6c2NcOVqGQ03X4Wi" Content-Disposition: inline In-Reply-To: <20050130075422.GL48777@opteron.dglawrence.com> User-Agent: Mutt/1.4.2.1i cc: alc@freeBSD.org cc: current@freeBSD.org cc: Kris Kennaway Subject: Re: do_execve() finding vmspace_destroyed set under load X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Jan 2005 09:35:29 -0000 --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jan 29, 2005 at 11:54:22PM -0800, David G. Lawrence wrote: > > I'm seeing the following code in do_execve() frequently being > > triggered when scripts are executed on my SMP machine under load: > >=20 > > if (imgp->vmspace_destroyed) { > > /* sorry, no more process anymore. exit gracefully */ > > #ifdef MAC > > mac_execve_exit(imgp); > > if (interplabel !=3D NULL) > > mac_vnode_label_free(interplabel); > > #endif > > exit1(td, W_EXITCODE(0, SIGABRT)); > > /* NOT REACHED */ > > error =3D 0; > > } > >=20 > > Needless to say, the scripts get pretty unhappy when they're summarily > > aborted. What is the cause of this? >=20 > There are many reasons why an exec can fail - you'd need to collect > more info to be able to say specifically. Speaking generally, the above > code happens because something failed after the process's address space > had been cleared, so there is no process executable image to return > to. The only thing to do in that case is to kill off the process. If > you're only seeing the problem under load, it is probably indicating > that your running out of a kernel VM pool of some kind. Any suggestions on what to look at to try and debug this further? Kris --6c2NcOVqGQ03X4Wi Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iD8DBQFB/KpfWry0BWjoQKURApj/AJ45sA/eM9CwH98NmhbzNc1I3X0MTgCcDZwJ rNP6NFcHtFA7FcMJPk7CNsc= =xeHI -----END PGP SIGNATURE----- --6c2NcOVqGQ03X4Wi--