do_execve() finding vmspace_destroyed set under load
Kris Kennaway
kris at obsecurity.org
Sun Jan 30 01:35:29 PST 2005
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:
> >
> > if (imgp->vmspace_destroyed) {
> > /* sorry, no more process anymore. exit gracefully */
> > #ifdef MAC
> > mac_execve_exit(imgp);
> > if (interplabel != NULL)
> > mac_vnode_label_free(interplabel);
> > #endif
> > exit1(td, W_EXITCODE(0, SIGABRT));
> > /* NOT REACHED */
> > error = 0;
> > }
> >
> > Needless to say, the scripts get pretty unhappy when they're summarily
> > aborted. What is the cause of this?
>
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20050130/bc5e1fa7/attachment.bin
More information about the freebsd-current
mailing list