Re: git: 4bd01d6ae016 - main - fts: refactor to use fd-relative operations internally

Alan Somers <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src,gmane.os.freebsd.current.scm
Message-ID <CAOtMX2j0yN9EF5fbMZ3YH7CgPS-KfNVDtgauDLva0uekkXiYDQ@mail.gmail.com>
On Tue, Aug 4, 2026 at 4:06 PM Mark Johnston <[email protected]> wrote:
>
> On Tue, Aug 04, 2026 at 01:33:40PM -0600, Alan Somers wrote:
> > Try this patch.  It works for me.  I don't have an ATF regression test
> > to go with it, though:
>
> This fixes the test failures, but I'm still seeing some weirdness when
> running tests in parallel: one test is doing something which exhausts
> all of the free vnodes in the kernel, and that causes a bunch of other
> tests to time out.  At some point the system recovers and carries on
> normally.  I'm not sure what the offending test is, but maybe there is a
> file descriptor leak somewhere in the change, or some problem with the
> compat implementation?
>
> > diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c
> > index 204340e4b87f..3dd9b6432a2c 100644
> > --- a/lib/libc/gen/fts.c
> > +++ b/lib/libc/gen/fts.c
> > @@ -489,8 +489,7 @@ fts_read(FTS *sp)
> >                  * FTS_STOP or the fts_info field of the node.
> >                  */
> >                 if (sp->fts_child != NULL) {
> > -                       if (fts_safe_changedir(sp, p,
> > -                           p->fts_dirfd, p->fts_name)) {
> > +                       if (fts_safe_changedir(sp, p, -1, p->fts_name)) {
> >                                 p->fts_errno = errno;
> >                                 p->fts_flags |= FTS_DONTCHDIR;
> >                                 for (p = sp->fts_child; p != NULL;
> >
> >
> > On Tue, Aug 4, 2026 at 1:00 PM Alan Somers <[email protected]> wrote:
> > >
> > > On Tue, Aug 4, 2026 at 12:58 PM Mark Johnston <[email protected]> wrote:
> > > >
> > > > On Mon, Aug 03, 2026 at 07:13:08PM +0000, Alan Somers wrote:
> > > > > The branch main has been updated by asomers:
> > > > >
> > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=4bd01d6ae01632501b63438b8d9a401db9744a78
> > > > >
> > > > > commit 4bd01d6ae01632501b63438b8d9a401db9744a78
> > > > > Author:     Jitendra Bhati <[email protected]>
> > > > > AuthorDate: 2026-06-12 17:07:55 +0000
> > > > > Commit:     Alan Somers <[email protected]>
> > > > > CommitDate: 2026-08-03 19:12:28 +0000
> > > > >
> > > > >     fts: refactor to use fd-relative operations internally
> > > > >
> > > > >     Replace all _open() calls with _openat() in __fts_open(), fts_read(),
> > > > >     and fts_children().  Replace statfs() with _fstatfs().
> > > > >
> > > > >     Add fts_dirfd to struct _ftsent, set to the file descriptor of the
> > > > >     parent directory. Callers can use openat(ent->fts_dirfd, ent->fts_name,
> > > > >     ...) to access files safely without relying on fts_accpath, which
> > > > >     enables programs in capability mode to open the files described by
> > > > >     _ftsent.
> > > > >
> > > > >     This is a preparatory change for fts_openat() which will allow callers
> > > > >     to provide a pre-opened directory fd, enabling fts(3) traversal inside
> > > > >     Capsicum capability mode.
> > > > >
> > > > >     Mirror all fts_open() changes to fts_open_b().
> > > > >
> > > > >     As a result of expanding _ftsend, publish new ELF symbol versions for
> > > > >     fts_openat and related functions.
> > > > >
> > > > >     Sponsored by:   Google LLC (GSoC 2026)
> > > > >     Reviewed by:    asomers
> > > > >     Pull Request:   https://github.com/freebsd/freebsd-src/pull/2303
> > > >
> > > > Quite a few regression tests seem to be failing after this commit, e.g.,
> > > > some of the makefs tests: https://ci.freebsd.org/job/FreeBSD-main-amd64-test/29201/
> > >
> > > I'm testing a fix now.  I should have something ready for you soon.

The fix is committed now, as 74bd6fb1eb02 .  Sorry for the trouble.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.