Mike McLean <mikem(a)redhat.com> writes:
There were much work to do recently, I haven't resolved this question. I
just remove those large rootdir manually. It's too silly. :)
I've see the kojid source code :
-----------------------------------------------------------------------------------------
741 #note:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=192153)
742 #If rpmlib is installing in this chroot, removing it entirely
743 #can lead to a world of hurt.
744 #We remove the rootdir contents but leave the rootdir unless it
745 #is really old
746 if age > 3600*24:
747 #dir untouched for a day
748 self.logger.info("Removing buildroot: %s" % desc)
749 if topdir and safe_rmtree(topdir, unmount=True, strict=False) !=
0:
750 continue
751 #also remove the config
752 try:
753 os.unlink(data['cfg'])
754 except OSError, e:
755 self.logger.warn("%s: can't remove config: %s"
% (desc, e))
756 elif age > 120:
757 if rootdir:
758 try:
759 flist = os.listdir(rootdir)
760 except OSError, e:
761 self.logger.warn("%s: can't list rootdir:
%s" % (desc, e))
762 continue
763 if flist:
764 self.logger.info("%s: clearing rootdir" % desc)
765 for fn in flist:
766 safe_rmtree("%s/%s" % (rootdir,fn),
unmount=True, strict=False)
767 else:
768 self.logger.debug("Recent buildroot: %s: %i seconds" %
(desc,age))
==============================================================================================
The 3600*24 must be mean 24 hours, but the 120 mean what ?
and , There are code following:
-----------------------------------
801 # see if there's a dir for the buildroot
802 vardir = "/var/lib/mock/%s" % name
803 #XXX
804 buildroots[id] = {}
805 buildroots[id]['name'] = name
806 buildroots[id]['cfg'] = fn
807 buildroots[id]['dir'] = None
808 if os.path.isdir(vardir):
809 buildroots[id]['dir'] = vardir
810 return buildroots
===============================================================
I've not use the /var/lib/mock, and I's not a link to /dist/mock. My
kojid.conf have following configure:
--------------------------------
; The directory root where work data can be found from the koji hub
topdir=/data/koji
; The directory root for temporary storage
workdir=/tmp/koji
; The directory root for mock
mockdir=/dist/mock
; The user to run as when doing builds
mockuser=kojibuilder
==============================================
Is the /var/lib/mock must exits and point to the mockdir ? And wheather
the kojid remove chrootdir use mockuser privilige ?
Thanks,
李建 wrote:
> Now ,the directory is:
> -----------------------------------------
> [root@localhost mock]# du -hs *
> 651M gtes11.2-build-10-9
> 18M gtes11.2-build-13-10
> 5.6M gtes11.2-build-15-15
> 549M gtes11.2-build-1-6
> 5.5M gtes11.2-build-16-15
> 18M gtes11.2-build-18-18
> 18M gtes11.2-build-19-18
Due to a potentially dangerous bug in rpmlib [1], kojid removes the
mockdir directories in two stages.
First the buildroot (e.g. gtes11.2-build-16-15/root)is cleared of
content, but the directory itself (as well the mock results dir)
remains. This clearing occurs almost immediately after most builds,
but is delayed four hours for failed builds.
After 24 hours, the entire mock directory for the chroot is removed.
This allows any stray rpm transactions plenty of time to exit. This
may seem like an extreme wait, but the consequences of triggering the
rpm bug are very, very bad.
[1]
https://bugzilla.redhat.com/show_bug.cgi?id=192153
It appears that at least some of these directories (e.g. the 18M ones)
are still in that 24 hour wait. As for the others, I cannot be sure
from this small amount of data.
...
> Why ? Because I use a special disk space,and I use Selinux, So I modified
> the /var/lib/mock to /dist/mock on kojihub and kojiweb and kojibuilder3
> host. but the kojibuilder2's mock directory is /var/lib/mock ,a link to
> /dist/mock on it's host.
>
> the kojihub and kojiweb and kojibuilder3's /mnt/koji directory is modified
> to /data/koji also . but the other kojibuilder*'s directory is /mnt/koji by
> nfs mount.
>
> Why ? It isn't change or removed after 1 days.
As pointed out above, it is normal for koji's mock directories to
survive (in a stripped form) for up to 24 hours. If the problem
persists, I recommend cranking up the debugging on kojid and watching
the logs (look for lines containing rootdir or buildroot).
--
Fedora-buildsys-list mailing list
Fedora-buildsys-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
--
Jian Lee
MSN : lijian.gnu(a)gmail.com