On Thu, 26 Jan 2017 16:05:47 -0800
Zac Medico <zmed...@gentoo.org> wrote:

> On 01/25/2017 04:21 PM, Zac Medico wrote:
> > Make spawn force instantiation of portage.data.userpriv_groups in
> > the main process, in order to avoid redundant instantiation in child
> > processes. This mitigates the impact of "Bad file descriptor" errors
> > reported in bug 582098, by avoiding redundant instantiation of
> > userpriv_groups in child processes. It may even solve the problem
> > completely, if the "Bad file descriptor" errors are triggered by
> > interactions between garbage collection and the file descriptor
> > operations performed in the _exec function by the _setup_pipes call.
> > 
> > X-Gentoo-Bug: 582098
> > X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=582098
> > ---
> >  pym/portage/process.py | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/pym/portage/process.py b/pym/portage/process.py
> > index ba41ea8..bc4efb5 100644
> > --- a/pym/portage/process.py
> > +++ b/pym/portage/process.py
> > @@ -305,6 +305,10 @@ def spawn(mycommand, env={}, opt_name=None,
> > fd_pipes=None, returnpid=False, if unshare_net or unshare_ipc:
> >             find_library("c")
> >  
> > +   # Force instantiation of portage.data.userpriv_groups
> > before the
> > +   # fork, so that the result is cached in the main process.
> > +   bool(groups)
> > +
> >     parent_pid = os.getpid()
> >     pid = None
> >     try:
> >   
> 
> Pushed:
> 
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=ccf975296daec92d376c4989e5ffb2a6cdbe8a2d

Sorry, it's been hard to keep up with email last few days, but yeah,
this is a trivial patch.  I know it's been a bastard to track down the
source of the problem.  Thanks

-- 
Brian Dolbec <dolsen>


Reply via email to