Re: do_execve() finding vmspace_destroyed set under load

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Sun, 30 Jan 2005 01:35:27 -0800
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

Received on Sun Jan 30 2005 - 08:35:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:27 UTC