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