Mike McLean <[email protected]> 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: >> ----------------------------------------- >> [r...@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 > [email protected] > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list > -- Jian Lee MSN : [email protected] -- Fedora-buildsys-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
