Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Oct 2006 22:05:28 +0100
From:      Ceri Davies <ceri@submonkey.net>
To:        Yar Tikhiy <yar@comp.chem.msu.su>
Cc:        Maxime Henrion <mux@FreeBSD.org>, cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org, Andrzej Tobola <ato@iem.pw.edu.pl>
Subject:   Re: cvs commit: src/etc/rc.d cleartmp
Message-ID:  <20061017210527.GD92966@submonkey.net>
In-Reply-To: <20061017173133.GD70184@comp.chem.msu.su>
References:  <200610161301.k9GD1j0C074012@repoman.freebsd.org> <20061017173133.GD70184@comp.chem.msu.su>

next in thread | previous in thread | raw e-mail | index | archive | help

--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Oct 17, 2006 at 09:31:33PM +0400, Yar Tikhiy wrote:
> On Mon, Oct 16, 2006 at 01:01:45PM +0000, Yar Tikhiy wrote:
> > yar         2006-10-16 13:01:45 UTC
> >=20
> >   FreeBSD src repository
> >=20
> >   Modified files:
> >     etc/rc.d             cleartmp=20
> >   Log:
> >   Improve cleartmp in a number of aspects:
> >  =20
> >   + Use rc.subr(8) features properly.
> >   + Do the whole job of obliterating /tmp contents in find(1).
> >   + Leave lost+found and quota.{user,group} in /tmp only if root-owned.
> >   + Make the overall structure clearer by first removing the X dirs
> >     (perhaps along with the rest of /tmp) and then re-creating them.
> >   + Use "find -exec rm -rf {} +" for efficiency: each rm instance gets
> >     a chance to kill as much files in /tmp as ARG_MAX permits.
>=20
> I was asked a few times why "-prune -exec rm -rf" had been chosen
> over "-delete".  My initial reason was that -delete would keep
> bogus lost+found and quota.{user,group} entries found in subdirs
> of /tmp.  Well, on second thought, the find command line can be
> tweaked so that -delete works as wanted.  E.g.:
>=20
>                 cd /tmp && find -x . ! -name . \
>                     ! \( -path ./lost+found -type d -user root \) \
>                     ! \( \( -path ./quota.user -or -path ./quota.group \)=
 \
>                         -type f -user root \) \
>                     -delete
>=20
> Note using -path in place of -name.
>=20
> However, it has recently been found that our fts(3) implementation
> is unable to handle very deep trees -- see PR bin/104458.  While
> the bug hits both rm and find, rm has a better chance to recover
> from it and gain the ability to remove virtually unlimited trees
> while find is doomed to retain much more inherent limitations due
> to its complex nature.  Therefore I'm inclined to keep "-prune
> -exec rm -rf" as a more robust approach, at least potentially.
> So find has only to skim over /tmp while descending to its deeps
> is left to rm.

Given that we're deleting everything anyway, wouldn't it be possible to
remove quota.{group,user} regardless and let quotacheck recreate them if
required?  This shouldn't take too long since there won't be much there.

Also, if X requires certain directories, wouldn't it be better to blow
them away here and have them created from a boot time script?  Otherwise
I don't understand how they ever get created.

I'm aware that these are probably stupid questions with obvious answers
but I think they're still worth asking.

Ceri
--=20
That must be wonderful!  I don't understand it at all.
                                                  -- Moliere

--ibTvN161/egqYuK8
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFNUWXocfcwTS3JF8RAvpgAKCVynXKqsygoLNPL91OckBNfaMDbACgp9JZ
nEzQakAlCTuqzICJ8FWlPQk=
=H3Mo
-----END PGP SIGNATURE-----

--ibTvN161/egqYuK8--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061017210527.GD92966>