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