mock 0.9.5 tmpfs plugin failure

Michael E Brown Michael_E_Brown at dell.com
Mon Jan 7 20:20:19 UTC 2008


On Sat, Jan 05, 2008 at 11:14:18AM -0600, Matt Domsch wrote:
> On Sat, Jan 05, 2008 at 10:41:29AM -0600, Michael E Brown wrote:
> > On Sat, Jan 05, 2008 at 10:09:26AM -0600, Matt Domsch wrote:
> > > When I enabled the tmpfs plugin in mock 0.9.5 today, I get the
> > > appended traceback, I believe during clean.  With tmpfs plugin
> > > disabled (the default), I get no such failure.
> > 
> > What was your cmdline?
> 
> /usr/bin/time -p --output=$R/time.log ${SETARCH} mock
> --rpmbuild_timeout=$((60 * 60 * 6)) \
>       --uniqueext=$rpm -r $e \
>       --resultdir $R/result/ \
>         rebuild $rpm
> 
> 
> > Where did you pull mock 0.9 from, rawhide?
> 
> yes.  The systems themselves are fully up-to-date F8, but am building
> for rawhide of course.
> 
> > Had you previously built using this buildroot without using tmpfs?
> 
> possibly, but I don't think so.  My rebuild run was going, and I
> just edited the defaults.cfg file online, so the next invocations of
> mock picked it up, and started failing with the traceback.  I removed
> the tmpfs plugin enable lines from defaults.cfg again, and it's all
> working fine.

Ok, so we tracked down this error. The bottom line was that, out of 6
builders, one of them only had 512MB RAM, which isnt enough to use the
tmpfs plugin. There is a bad interaction between the tmpfs plugin and
the automatic cleanup-on-failure code. The tmpfs plugin unmounts the
tmpfs in a post-init hook, and this hook isnt called on failure. That
means that the chroot /root dir is still a mounted tmpfs when the
cleanup calls, which fails.

I'll do two things:

1) fix the tmpfs unmount to be called even in failure

2) make tmpfs take a "min_ram" argument, such that it will automatically
disable tmpfs if there doesnt appear to be enough ram (user
configurable).

--
Michael




More information about the Fedora-buildsys-list mailing list