problems with orphanskill feature

Michael E Brown Michael_E_Brown at Dell.com
Thu Sep 27 19:55:45 UTC 2007


On Thu, Sep 27, 2007 at 01:30:15PM -0500, Clark Williams wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Michael/Jesse,
> 
> We're seeing odd failures with mock and the orphanskill feature. What seems to happen
> is that the '; mock-helper orphanskill <rootdir>'  string is tacked onto a command
> which is passed to do_chroot() and after the main command is run, an attempt is made
> to run mock-helper (which is not installed in the chroot). So people are seeing a
> "File not found" message after a successful command.
> 
> Now it looks like to me that part of the reason for an orphanskill was that the do()
> routine might hang until all the child processes are done, so I'm loathe to just run
> the orphanskill after the do_chroot() is finished (I suspect twisty lines of logic,
> all alike). Seems like we can do a couple of things:
> 
> 1. Copy mock-helper into each chroot, so it's available for orphanskill
> 2. Back out the orphanskill logic and try again
> 
> Option #1 is somewhat easy, if kinda ugly (not sure I like the idea of scattering a
> setuid-root program into all our build roots). Option #2 requires that we look at the
> code in all the do_* and do() routines to make sure that orphanskill runs when we
> need it to. Ideally I'd like to insure that orphanskill runs *outside* the chroot and
> that it's not needed to keep self.do() from hanging.
> 
> What you guys think?

How about we just run two commands in a row? I see the comment but don't
really see why. Line 973, we dont need to run orphanskill if it isnt
chroot. For the my.do_chroot() on line 975, it looks like we could just
do a my.do_chroot() followed by a normal os.system().

The problem it is trying to fix is if the rpmbuild process spawns child
processes that fork and never exit. I believe this was seen in some code
that was running in the rpmbuild as a unit test?

We should also be cc-ing fedora-buildsys-list. (done)

I also understand Jesse's sentiment to just back it out.  If it is going
to take more than a day or two to fix, we could just back it out.
--
Michael




More information about the Fedora-buildsys-list mailing list