Re: do_execve() finding vmspace_destroyed set under load

From: David G. Lawrence <dg_at_dglawrence.com>
Date: Sun, 30 Jan 2005 02:14:03 -0800
> > > 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?

   The first thing to do is to add some kernel printf's to do_execve()
in each of the 'if (error)' cases to determine where the error is occuring.
It's probably not worth putting them in cases prior to the 'loop through
the list of image activators', since the vmspace isn't destroyed until
then.
   Once you've done that, the cause of the problem should become obvious.

-DG

David G. Lawrence
President
Download Technologies, Inc. - http://www.downloadtech.com - (866) 399 8500
TeraSolutions, Inc. - http://www.terasolutions.com - (888) 346 7175
The FreeBSD Project - http://www.freebsd.org
Pave the road of life with opportunities.
Received on Sun Jan 30 2005 - 09:14:04 UTC

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