On Jan 03 09:51:37, [email protected] wrote:
> On Sat, Jan 03, 2026 at 09:10:57AM +0100, Jan Stary wrote:
> 
> > This is current/octeon, running 'cvs up -PdA' in /usr/ports.
> > It's a small machine, running off a usb stick.
> > 
> > I have run out of space in /usr/ports before: not running out of blocks
> > (gigabytes are still left), but out of inodes; so I recreated /usr/ports
> > with newfs -i to have more inodes.
> > 
> > During the cvs up, it uses this many inodes:
> > 
> > Filesystem     Size    Used   Avail Capacity  iused    ifree %iused Mounted 
> > on
> > /dev/sd0k      2.9G    765M    2.0G    28%   255643   159075   62% 
> > /usr/ports
> > 
> > but once it finishes, it's
> > 
> > hans@oct:~$ df -hi /usr/ports/ 
> > Filesystem     Size    Used   Avail Capacity  iused    ifree %iused Mounted 
> > on
> > /dev/sd0k      2.9G    649M    2.1G    23%   195878   218840   48% 
> > /usr/ports
> > 
> > So there's about sixty thousand files that get created during the cvs up
> > (by cvs, I assume - there's nothing else running that touches /usr/ports)
> > that eventualy get deleted. Is this normal cvs operation? I remember seeing
> > e.g. a 'benchmarking' subdir besides 'benchmarks' during the cvs up. Does 
> > cvs
> > (speculating) create everything that ever existed in the repo and only then
> > prune to the current state?
> > 
> >     Jan
> 
> iirc it creates every directory that ever existed
> during a checkout or update -d

Right, watching it run again, I'm seeing e.g. dev/ and deve/ :

/usr/ports/dev
/usr/ports/dev/CVS
/usr/ports/dev/CVS/Root
/usr/ports/dev/CVS/Repository
/usr/ports/dev/CVS/Entries
/usr/ports/dev/CVS/Entries.Log
/usr/ports/dev/ocaml-mlgmp
/usr/ports/dev/ocaml-mlgmp/CVS
/usr/ports/dev/ocaml-mlgmp/CVS/Root
/usr/ports/dev/ocaml-mlgmp/CVS/Repository
/usr/ports/dev/ocaml-mlgmp/CVS/Entries
/usr/ports/dev/ocaml-mlgmp/CVS/Entries.Log
/usr/ports/dev/ocaml-mlgmp/patches
/usr/ports/dev/ocaml-mlgmp/patches/CVS
/usr/ports/dev/ocaml-mlgmp/patches/CVS/Root
/usr/ports/dev/ocaml-mlgmp/patches/CVS/Repository
/usr/ports/dev/ocaml-mlgmp/patches/CVS/Entries
/usr/ports/dev/ocaml-mlgmp/pkg
/usr/ports/dev/ocaml-mlgmp/pkg/CVS
/usr/ports/dev/ocaml-mlgmp/pkg/CVS/Root
/usr/ports/dev/ocaml-mlgmp/pkg/CVS/Repository
/usr/ports/dev/ocaml-mlgmp/pkg/CVS/Entries
/usr/ports/dev/py-psyco
/usr/ports/dev/py-psyco/CVS
/usr/ports/dev/py-psyco/CVS/Root
/usr/ports/dev/py-psyco/CVS/Repository
/usr/ports/dev/py-psyco/CVS/Entries
/usr/ports/dev/py-psyco/CVS/Entries.Log
/usr/ports/dev/py-psyco/pkg
/usr/ports/dev/py-psyco/pkg/CVS
/usr/ports/dev/py-psyco/pkg/CVS/Root
/usr/ports/dev/py-psyco/pkg/CVS/Repository
/usr/ports/dev/py-psyco/pkg/CVS/Entries
/usr/ports/deve
/usr/ports/deve/CVS
/usr/ports/deve/CVS/Root
/usr/ports/deve/CVS/Repository
/usr/ports/deve/CVS/Entries
/usr/ports/deve/CVS/Entries.Log
/usr/ports/deve/py-click-plugins
/usr/ports/deve/py-click-plugins/CVS
/usr/ports/deve/py-click-plugins/CVS/Root
/usr/ports/deve/py-click-plugins/CVS/Repository
/usr/ports/deve/py-click-plugins/CVS/Entries
/usr/ports/deve/py-click-plugins/CVS/Entries.Log
/usr/ports/deve/py-click-plugins/pkg
/usr/ports/deve/py-click-plugins/pkg/CVS
/usr/ports/deve/py-click-plugins/pkg/CVS/Root
/usr/ports/deve/py-click-plugins/pkg/CVS/Repository
/usr/ports/deve/py-click-plugins/pkg/CVS/Entries
/usr/ports/deve/tradcpp
/usr/ports/deve/tradcpp/CVS
/usr/ports/deve/tradcpp/CVS/Root
/usr/ports/deve/tradcpp/CVS/Repository
/usr/ports/deve/tradcpp/CVS/Entries
/usr/ports/deve/tradcpp/CVS/Entries.Log
/usr/ports/deve/tradcpp/patches
/usr/ports/deve/tradcpp/patches/CVS
/usr/ports/deve/tradcpp/patches/CVS/Root
/usr/ports/deve/tradcpp/patches/CVS/Repository
/usr/ports/deve/tradcpp/patches/CVS/Entries
/usr/ports/deve/tradcpp/pkg
/usr/ports/deve/tradcpp/pkg/CVS
/usr/ports/deve/tradcpp/pkg/CVS/Root
/usr/ports/deve/tradcpp/pkg/CVS/Repository
/usr/ports/deve/tradcpp/pkg/CVS/Entries
/usr/ports/deve/yasm
/usr/ports/deve/yasm/CVS
/usr/ports/deve/yasm/CVS/Root
/usr/ports/deve/yasm/CVS/Repository
/usr/ports/deve/yasm/CVS/Entries
/usr/ports/deve/yasm/CVS/Entries.Log
/usr/ports/deve/yasm/pkg
/usr/ports/deve/yasm/pkg/CVS
/usr/ports/deve/yasm/pkg/CVS/Root
/usr/ports/deve/yasm/pkg/CVS/Repository
/usr/ports/deve/yasm/pkg/CVS/Entries

These are not just empty dirs, there's nonempty files as well:

$ cat /usr/ports/deve/tradcpp/pkg/CVS/Entries
D

Thanks for the insight.

So yeah, that's why it needs tens of thousands of extra inodes.
I suppose it doesn't actualy run out, like it doesn't on any of my
"real" machines with big /usr/ports partitions; but it did on this octeon
running off a 16GB usb stick, where I just carved out some 3GB for ports
as an afterthought. The problem is not 3GB (plenty to build an odd port,
no bulks here), but inodes; that can be solved with newfs -f -b -i.

To be clear: this never happened on a system where I created /usr/ports
during the install and gave it the obligatory 10GB or so,
meaning more inodes as well.

Fine point: does the installer newfs specific filesystems
with specific -b -f -i (as in: many inodes are needed in /usr/ports)?

        Jan

Reply via email to