[PATCH 4 of 6] plan9: prevent potential wait()

erik quanstrom quanstro at quanstro.net
Thu Aug 15 12:01:46 CDT 2013


On Thu Aug 15 11:06:45 EDT 2013, raf at durin42.com wrote:
> 
> On Aug 13, 2013, at 10:20 PM, Jeff Sickel <jas at corpus-callosum.com> wrote:
> 
> > A small number, less than 130 forked children, may be
> > beneficial on Plan 9 (see following test script).  But
> > under certain cases like cloning a large repository or
> > updating something that produces a significant number of
> > children, we end up with an OSError exception that will
> > cause hg to rollback the transaction and delete any
> > changes written to the work area.  So until we have
> > a solution that lets us fork() thousands of children
> > like a clone of cpython would do in the worker calculation,
> > we just punt and don't fork any.
> 
> What I'm hearing as I read this is we need a limit of how many workers to fork, and on plan9 that should be ~127.

yes.

plan 9 will store a maximum of 128 wait messages, so if
a scheme relies on wait messages and might have a burst of
>128 exiting children with no oppertunity to clean them up,
then the scheme can be confused by the lack of wait messages.

- erik


More information about the Mercurial-devel mailing list