Date: Tue, 4 Aug 2026 18:06:23 -0400 From: Mark Johnston <markj@freebsd.org> To: Alan Somers <asomers@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org, Jitendra Bhati <bhatijitendra2022@gmail.com> Subject: Re: git: 4bd01d6ae016 - main - fts: refactor to use fd-relative operations internally Message-ID: <anJiX_r4gThay5bk@nuc> In-Reply-To: <CAOtMX2i9NxYuu=LZwLLP7NErLf4i5A7K=wLC%2B-GywchbwUZacw@mail.gmail.com> References: <6a70e844.251cb.6995429f@gitrepo.freebsd.org> <anI2QoB7hj7CSMRq@nuc> <CAOtMX2g_U_mspHXdf3HL%2BFr-kh6XSbxR6JSTmVQ9OHDTqfckYw@mail.gmail.com> <CAOtMX2i9NxYuu=LZwLLP7NErLf4i5A7K=wLC%2B-GywchbwUZacw@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
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 <asomers@freebsd.org> wrote:
> >
> > On Tue, Aug 4, 2026 at 12:58 PM Mark Johnston <markj@freebsd.org> 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 <bhatijitendra2022@gmail.com>
> > > > AuthorDate: 2026-06-12 17:07:55 +0000
> > > > Commit: Alan Somers <asomers@FreeBSD.org>
> > > > 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.
>
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?anJiX_r4gThay5bk>
