tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: find and limits



coypu%sdf.org@localhost wrote:

> I understand the need for correctness, but the limits for find ... -exec
> are really low, and it's quite unclear why things fail when they do.

What limits?  Limits inside find(1)?  Global limit on the maximum
length of a command line?


> cd /cvs/pkgsrc/fonts/urbanrenewal-ttf/
> make patch
> mkdir -p work/.destdir/usr/pkg/share/fonts/X11/TTF
> find /cvs/pkgsrc/fonts/urbanrenewal-ttf/work -name '*.ttf'  -exec /usr/bin/install -c -o fly -g users -m 644 "{}" /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF ";"
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Athene.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Parc Place.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Liverpool.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Los Altos.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Sanfrisco.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Torrance.ttf: write: Invalid argument
> install: /cvs/pkgsrc/fonts/urbanrenewal-ttf/work/.destdir/usr/pkg/share/fonts/X11/TTF/Valencia.ttf: write: Invalid argument
> (1 hour of investigating with the help of leot later...)

And the answer was...?  As you say "it's quite unclear why things fail
when they do", and presumably you have figured it out, but you never
tell.

Our ARG_MAX, iirc, is reasonably large and the commands/pathnames you
quote should fit just fine.  Last time I ran into ARG_MAX limitation
was ages ago when I was cross-building on FreeBSD 4 (that had the
limit of 64K) and with a long enough path to netbsd src dir some of
the more verbose make invocations would hit it.  The contributing
factor was that our makefiles duplicated some of the larger chunks
setting the environment, so the limit was effectively halved.  I have
hard time believing the much more modest commands above hit ARG_MAX.

-uwe



Home | Main Index | Thread Index | Old Index